From d395bd510fa4f4376dc5237ab2f8d190a920d35d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 19 Feb 2023 16:05:49 +0100 Subject: Adding upstream version 2.1.1. Signed-off-by: Daniel Baumann --- .../Notifications/deluge_notifications/__init__.py | 9 +- .../Notifications/deluge_notifications/common.py | 5 +- .../Notifications/deluge_notifications/core.py | 8 +- .../deluge_notifications/data/config.ui | 10 - .../deluge_notifications/data/config.ui~ | 643 --------------------- .../deluge_notifications/data/notifications.js | 46 +- .../Notifications/deluge_notifications/gtkui.py | 17 +- .../Notifications/deluge_notifications/test.py | 11 +- .../Notifications/deluge_notifications/webui.py | 3 - deluge/plugins/Notifications/setup.py | 3 +- 10 files changed, 42 insertions(+), 713 deletions(-) delete mode 100644 deluge/plugins/Notifications/deluge_notifications/data/config.ui~ (limited to 'deluge/plugins/Notifications') diff --git a/deluge/plugins/Notifications/deluge_notifications/__init__.py b/deluge/plugins/Notifications/deluge_notifications/__init__.py index 810e284..d52b48d 100644 --- a/deluge/plugins/Notifications/deluge_notifications/__init__.py +++ b/deluge/plugins/Notifications/deluge_notifications/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # Copyright (C) 2009-2010 Pedro Algarvio # @@ -12,8 +11,6 @@ # See LICENSE for more details. # -from __future__ import unicode_literals - from deluge.plugins.init import PluginInitBase @@ -22,7 +19,7 @@ class CorePlugin(PluginInitBase): from .core import Core as _pluginCls self._plugin_cls = _pluginCls - super(CorePlugin, self).__init__(plugin_name) + super().__init__(plugin_name) class GtkUIPlugin(PluginInitBase): @@ -30,7 +27,7 @@ class GtkUIPlugin(PluginInitBase): from .gtkui import GtkUI as _pluginCls self._plugin_cls = _pluginCls - super(GtkUIPlugin, self).__init__(plugin_name) + super().__init__(plugin_name) class WebUIPlugin(PluginInitBase): @@ -38,4 +35,4 @@ class WebUIPlugin(PluginInitBase): from .webui import WebUI as _pluginCls self._plugin_cls = _pluginCls - super(WebUIPlugin, self).__init__(plugin_name) + super().__init__(plugin_name) diff --git a/deluge/plugins/Notifications/deluge_notifications/common.py b/deluge/plugins/Notifications/deluge_notifications/common.py index 6966122..9993f5c 100644 --- a/deluge/plugins/Notifications/deluge_notifications/common.py +++ b/deluge/plugins/Notifications/deluge_notifications/common.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # Copyright (C) 2009-2010 Pedro Algarvio # @@ -12,8 +11,6 @@ # See LICENSE for more details. # -from __future__ import unicode_literals - import logging import os.path @@ -30,7 +27,7 @@ def get_resource(filename): return resource_filename(__package__, os.path.join('data', filename)) -class CustomNotifications(object): +class CustomNotifications: def __init__(self, plugin_name=None): self.custom_notifications = {'email': {}, 'popup': {}, 'blink': {}, 'sound': {}} diff --git a/deluge/plugins/Notifications/deluge_notifications/core.py b/deluge/plugins/Notifications/deluge_notifications/core.py index 123f9cf..aa200f9 100644 --- a/deluge/plugins/Notifications/deluge_notifications/core.py +++ b/deluge/plugins/Notifications/deluge_notifications/core.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # Copyright (C) 2009-2010 Pedro Algarvio # @@ -12,8 +11,6 @@ # See LICENSE for more details. # -from __future__ import unicode_literals - import logging import smtplib from email.utils import formatdate @@ -119,7 +116,6 @@ Date: %(date)s message = '\r\n'.join((headers + message).splitlines()) try: - # Python 2.6 server = smtplib.SMTP( self.config['smtp_host'], self.config['smtp_port'], timeout=60 ) @@ -152,7 +148,7 @@ Date: %(date)s try: try: - server.sendmail(self.config['smtp_from'], to_addrs, message) + server.sendmail(self.config['smtp_from'], to_addrs, message.encode()) except smtplib.SMTPException as ex: err_msg = ( _('There was an error sending the notification email: %s') % ex @@ -176,7 +172,7 @@ Date: %(date)s def _on_torrent_finished_event(self, torrent_id): log.debug('Handler for TorrentFinishedEvent called for CORE') torrent = component.get('TorrentManager')[torrent_id] - torrent_status = torrent.get_status({}) + torrent_status = torrent.get_status(['name', 'num_files']) # Email subject = _('Finished Torrent "%(name)s"') % torrent_status message = ( diff --git a/deluge/plugins/Notifications/deluge_notifications/data/config.ui b/deluge/plugins/Notifications/deluge_notifications/data/config.ui index c16b37a..399cc9e 100644 --- a/deluge/plugins/Notifications/deluge_notifications/data/config.ui +++ b/deluge/plugins/Notifications/deluge_notifications/data/config.ui @@ -187,8 +187,6 @@ True True - False - False 1 @@ -217,8 +215,6 @@ True 5 5 - False - False adjustment1 1 True @@ -246,8 +242,6 @@ True True - False - False 1 @@ -273,8 +267,6 @@ True True False - False - False 1 @@ -427,8 +419,6 @@ True True - False - False 1 diff --git a/deluge/plugins/Notifications/deluge_notifications/data/config.ui~ b/deluge/plugins/Notifications/deluge_notifications/data/config.ui~ deleted file mode 100644 index f26275b..0000000 --- a/deluge/plugins/Notifications/deluge_notifications/data/config.ui~ +++ /dev/null @@ -1,643 +0,0 @@ - - - - - - 1 - 65535 - 25 - 1 - 10 - - - False - - - True - False - - - True - False - queue - - - True - True - False - - - True - False - start - - - True - False - start - 9 - 0 - none - - - True - False - 12 - 10 - - - True - False - - - Tray icon blinks enabled - True - True - False - True - - - True - True - 0 - - - - - Popups enabled - True - True - False - True - - - True - True - 1 - - - - - True - False - - - Sound enabled - True - True - False - start - True - - - - False - True - 0 - - - - - True - False - False - - - - True - True - 2 - 1 - - - - - True - True - 2 - - - - - - - - - True - False - start - 5 - 5 - <b>UI Notifications</b> - True - - - - - True - True - 0 - - - - - True - False - start - 10 - 7 - 0 - none - - - True - False - 12 - 10 - - - True - False - 7 - 4 - 2 - 2 - - - True - False - start - Hostname: - - - 1 - 2 - - - - - True - True - False - False - - - 1 - 2 - 1 - 2 - - - - - True - False - Port: - right - - - 2 - 3 - 1 - 2 - - - - - True - True - 5 - 5 - False - False - adjustment1 - 1 - True - - - 3 - 4 - 1 - 2 - - - - - True - False - start - Username: - - - 2 - 3 - - - - - True - True - False - False - - - 1 - 4 - 2 - 3 - - - - - True - False - start - Password: - - - 3 - 4 - - - - - True - True - False - False - False - - - 1 - 4 - 3 - 4 - - - - - True - False - start - 0 - none - - - True - False - 10 - - - True - False - 2 - - - True - True - in - - - True - True - False - horizontal - - - - - - - - True - True - 0 - - - - - True - False - 5 - start - - - gtk-add - True - True - True - True - - - - False - False - 0 - - - - - gtk-delete - True - False - True - True - True - - - - False - False - 1 - - - - - False - True - 3 - 1 - - - - - - - - - True - False - <b>Recipients</b> - 3 - True - 0 - - - - - 4 - 6 - 7 - - - - - True - True - False - start - True - - - True - False - Server requires TLS/SSL - - - - - 1 - 4 - 5 - 6 - - - - - True - False - start - From: - - - 4 - 5 - - - - - True - True - False - False - - - 1 - 4 - 4 - 5 - - - - - Enabled - True - True - False - True - - - - 4 - - - - - - - - - True - False - start - 5 - <b>Email Notifications</b> - True - - - - - True - True - 1 - - - - - - - True - False - Settings - - - False - - - - - True - False - 15 - 10 - 10 - - - - - - True - True - - - True - True - horizontal - - - - - - - - True - True - 1 - - - - - True - False - This configuration does not mean that you'll actually receive notifications for all these events. - fill - True - - - False - True - 2 - 2 - - - - - 1 - - - - - True - False - Subscriptions - - - 1 - False - - - - - True - False - 15 - 10 - 10 - - - True - True - - - True - True - - - - - - - - True - True - 0 - - - - - True - False - 10 - end - - - gtk-revert-to-saved - True - False - True - True - True - - - - False - False - 0 - - - - - gtk-edit - True - False - True - True - True - - - - False - False - 1 - - - - - False - True - 5 - 1 - - - - - 2 - - - - - True - False - Sound Customization - - - 2 - False - - - - - - - True - True - 0 - - - - - - - - - diff --git a/deluge/plugins/Notifications/deluge_notifications/data/notifications.js b/deluge/plugins/Notifications/deluge_notifications/data/notifications.js index c9fb71f..4b87e55 100644 --- a/deluge/plugins/Notifications/deluge_notifications/data/notifications.js +++ b/deluge/plugins/Notifications/deluge_notifications/data/notifications.js @@ -21,7 +21,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { layout: 'fit', border: false, - initComponent: function() { + initComponent: function () { Deluge.ux.preferences.NotificationsPage.superclass.initComponent.call( this ); @@ -44,7 +44,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { xtype: 'checkbox', boxLabel: _('Enabled'), listeners: { - check: function(object, checked) { + check: function (object, checked) { this.setSmtpDisabled(!checked); }, scope: this, @@ -227,11 +227,11 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { fields: [{ name: 'recipient' }], }), listeners: { - afteredit: function(e) { + afteredit: function (e) { e.record.commit(); }, }, - setEmptyText: function(text) { + setEmptyText: function (text) { if (this.viewReady) { this.getView().emptyText = text; this.getView().refresh(); @@ -239,7 +239,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { Ext.apply(this.viewConfig, { emptyText: text }); } }, - loadData: function(data) { + loadData: function (data) { this.getStore().loadData(data); if (this.viewReady) { this.getView().updateHeaders(); @@ -259,7 +259,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { }, colModel: new Ext.grid.ColumnModel({ defaults: { - renderer: function( + renderer: function ( value, meta, record, @@ -310,7 +310,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { ], }), listeners: { - cellclick: function(grid, rowIndex, colIndex, e) { + cellclick: function (grid, rowIndex, colIndex, e) { var record = grid.getStore().getAt(rowIndex); var field = grid.getColumnModel().getDataIndex(colIndex); var value = record.get(field); @@ -322,18 +322,18 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { } } }, - beforeedit: function(e) { + beforeedit: function (e) { if (Ext.isBoolean(e.value)) { return false; } return e.record.get('enabled'); }, - afteredit: function(e) { + afteredit: function (e) { e.record.commit(); }, }, - setEmptyText: function(text) { + setEmptyText: function (text) { if (this.viewReady) { this.getView().emptyText = text; this.getView().refresh(); @@ -341,13 +341,13 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { Ext.apply(this.viewConfig, { emptyText: text }); } }, - setSub: function(eventName) { + setSub: function (eventName) { var store = this.getStore(); var index = store.find('event', eventName); store.getAt(index).set('email', true); store.getAt(index).commit(); }, - loadData: function(data) { + loadData: function (data) { this.getStore().loadData(data); if (this.viewReady) { this.getView().updateHeaders(); @@ -374,9 +374,9 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { this.on('show', this.updateConfig, this); }, - updateConfig: function() { + updateConfig: function () { deluge.client.notifications.get_handled_events({ - success: function(events) { + success: function (events) { var data = []; var keys = Ext.keys(events); for (var i = 0; i < keys.length; i++) { @@ -388,7 +388,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { scope: this, }); deluge.client.notifications.get_config({ - success: function(config) { + success: function (config) { this.chkEnableEmail.setValue(config['smtp_enabled']); this.setSmtpDisabled(!config['smtp_enabled']); @@ -420,7 +420,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { }); }, - onApply: function() { + onApply: function () { var config = {}; config['smtp_enabled'] = this.chkEnableEmail.getValue(); @@ -461,11 +461,11 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { deluge.client.notifications.set_config(config); }, - onOk: function() { + onOk: function () { this.onApply(); }, - onAddClick: function() { + onAddClick: function () { var store = this.recipientsFset.getComponent(0).getStore(); var Recipient = store.recordType; var i = new Recipient({ @@ -476,7 +476,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { this.recipientsFset.getComponent(0).startEditing(0, 0); }, - onRemoveClick: function() { + onRemoveClick: function () { var selections = this.recipientsFset .getComponent(0) .getSelectionModel() @@ -488,7 +488,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { store.commitChanges(); }, - setSmtpDisabled: function(disable) { + setSmtpDisabled: function (disable) { this.hBoxHost.setDisabled(disable); this.hBoxPort.setDisabled(disable); this.hBoxUser.setDisabled(disable); @@ -498,7 +498,7 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { this.recipientsFset.getComponent(0).setDisabled(disable); }, - onDestroy: function() { + onDestroy: function () { deluge.preferences.un('show', this.updateConfig, this); Deluge.ux.preferences.NotificationsPage.superclass.onDestroy.call(this); @@ -508,11 +508,11 @@ Deluge.ux.preferences.NotificationsPage = Ext.extend(Ext.Panel, { Deluge.plugins.NotificationsPlugin = Ext.extend(Deluge.Plugin, { name: 'Notifications', - onDisable: function() { + onDisable: function () { deluge.preferences.removePage(this.prefsPage); }, - onEnable: function() { + onEnable: function () { this.prefsPage = deluge.preferences.addPage( new Deluge.ux.preferences.NotificationsPage() ); diff --git a/deluge/plugins/Notifications/deluge_notifications/gtkui.py b/deluge/plugins/Notifications/deluge_notifications/gtkui.py index 816cb36..4dc5ff8 100644 --- a/deluge/plugins/Notifications/deluge_notifications/gtkui.py +++ b/deluge/plugins/Notifications/deluge_notifications/gtkui.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # Copyright (C) 2009-2010 Pedro Algarvio # @@ -12,8 +11,6 @@ # See LICENSE for more details. # -from __future__ import unicode_literals - import logging from os.path import basename @@ -42,7 +39,7 @@ except ImportError: try: require_version('Notify', '0.7') - from gi.repository import Notify + from gi.repository import GLib, Notify except (ValueError, ImportError): POPUP_AVAILABLE = False else: @@ -174,15 +171,17 @@ class GtkUiNotifications(CustomNotifications): if not self.config['popup_enabled']: return defer.succeed(_('Popup notification is not enabled.')) if not POPUP_AVAILABLE: - return defer.fail(_('libnotify is not installed')) + err_msg = _('libnotify is not installed') + log.warning(err_msg) + return defer.fail(ImportError(err_msg)) if Notify.init('Deluge'): self.note = Notify.Notification.new(title, message, 'deluge-panel') - self.note.set_hint('desktop-entry', 'deluge') + self.note.set_hint('desktop-entry', GLib.Variant.new_string('deluge')) if not self.note.show(): err_msg = _('Failed to popup notification') log.warning(err_msg) - return defer.fail(err_msg) + return defer.fail(Exception(err_msg)) return defer.succeed(_('Notification popup shown')) def __play_sound(self, sound_path=''): @@ -191,7 +190,7 @@ class GtkUiNotifications(CustomNotifications): if not SOUND_AVAILABLE: err_msg = _('pygame is not installed') log.warning(err_msg) - return defer.fail(err_msg) + return defer.fail(ImportError(err_msg)) pygame.init() try: @@ -203,7 +202,7 @@ class GtkUiNotifications(CustomNotifications): except pygame.error as ex: err_msg = _('Sound notification failed %s') % ex log.warning(err_msg) - return defer.fail(err_msg) + return defer.fail(ex) else: msg = _('Sound notification Success') log.info(msg) diff --git a/deluge/plugins/Notifications/deluge_notifications/test.py b/deluge/plugins/Notifications/deluge_notifications/test.py index 2e6f975..013cdbf 100644 --- a/deluge/plugins/Notifications/deluge_notifications/test.py +++ b/deluge/plugins/Notifications/deluge_notifications/test.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # vim: sw=4 ts=4 fenc=utf-8 et # ============================================================================== # Copyright © 2009-2010 UfSoft.org - Pedro Algarvio @@ -6,8 +5,6 @@ # License: BSD - Please view the LICENSE file for additional information. # ============================================================================== -from __future__ import unicode_literals - import logging from twisted.internet import task @@ -70,14 +67,14 @@ class TestEmailNotifications(component.Component): def custom_email_message_provider(self, *evt_args, **evt_kwargs): log.debug('Running custom email message provider: %s %s', evt_args, evt_kwargs) - subject = '%s Email Subject: %s' % (self.events[0].__class__.__name__, self.n) - message = '%s Email Message: %s' % (self.events[0].__class__.__name__, self.n) + subject = f'{self.events[0].__class__.__name__} Email Subject: {self.n}' + message = f'{self.events[0].__class__.__name__} Email Message: {self.n}' return subject, message def custom_popup_message_provider(self, *evt_args, **evt_kwargs): log.debug('Running custom popup message provider: %s %s', evt_args, evt_kwargs) - title = '%s Popup Title: %s' % (self.events[0].__class__.__name__, self.n) - message = '%s Popup Message: %s' % (self.events[0].__class__.__name__, self.n) + title = f'{self.events[0].__class__.__name__} Popup Title: {self.n}' + message = f'{self.events[0].__class__.__name__} Popup Message: {self.n}' return title, message def custom_blink_message_provider(self, *evt_args, **evt_kwargs): diff --git a/deluge/plugins/Notifications/deluge_notifications/webui.py b/deluge/plugins/Notifications/deluge_notifications/webui.py index d3529c4..ad090f5 100644 --- a/deluge/plugins/Notifications/deluge_notifications/webui.py +++ b/deluge/plugins/Notifications/deluge_notifications/webui.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # Copyright (C) 2009-2010 Pedro Algarvio # @@ -12,8 +11,6 @@ # See LICENSE for more details. # -from __future__ import unicode_literals - import logging from deluge.plugins.pluginbase import WebPluginBase diff --git a/deluge/plugins/Notifications/setup.py b/deluge/plugins/Notifications/setup.py index d9a9e42..3d87423 100755 --- a/deluge/plugins/Notifications/setup.py +++ b/deluge/plugins/Notifications/setup.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # Copyright (C) 2009-2010 Pedro Algarvio # @@ -17,7 +16,7 @@ from setuptools import find_packages, setup __plugin_name__ = 'Notifications' __author__ = 'Pedro Algarvio' __author_email__ = 'pedro@algarvio.me' -__version__ = '0.3' +__version__ = '0.4' __url__ = 'http://dev.deluge-torrent.org/' __license__ = 'GPLv3' __description__ = 'Plugin which provides notifications to Deluge.' -- cgit v1.2.3