[Notifications] Fix unhandled TypeErrors on Python 3
- Notify requires GLib.Variant for set_hint - Twisted defer.fail only accepts Exceptions. Fixes: #3267
This commit is contained in:
parent
1b4ac88ce7
commit
63a4301a8b
|
@ -42,7 +42,7 @@ except ImportError:
|
|||
|
||||
try:
|
||||
require_version('Notify', '0.7')
|
||||
from gi.repository import Notify
|
||||
from gi.repository import Notify, GLib
|
||||
except (ValueError, ImportError):
|
||||
POPUP_AVAILABLE = False
|
||||
else:
|
||||
|
@ -174,15 +174,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 +193,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 +205,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)
|
||||
|
|
Loading…
Reference in New Issue