[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:
|
try:
|
||||||
require_version('Notify', '0.7')
|
require_version('Notify', '0.7')
|
||||||
from gi.repository import Notify
|
from gi.repository import Notify, GLib
|
||||||
except (ValueError, ImportError):
|
except (ValueError, ImportError):
|
||||||
POPUP_AVAILABLE = False
|
POPUP_AVAILABLE = False
|
||||||
else:
|
else:
|
||||||
|
@ -174,15 +174,17 @@ class GtkUiNotifications(CustomNotifications):
|
||||||
if not self.config['popup_enabled']:
|
if not self.config['popup_enabled']:
|
||||||
return defer.succeed(_('Popup notification is not enabled.'))
|
return defer.succeed(_('Popup notification is not enabled.'))
|
||||||
if not POPUP_AVAILABLE:
|
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'):
|
if Notify.init('Deluge'):
|
||||||
self.note = Notify.Notification.new(title, message, 'deluge-panel')
|
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():
|
if not self.note.show():
|
||||||
err_msg = _('Failed to popup notification')
|
err_msg = _('Failed to popup notification')
|
||||||
log.warning(err_msg)
|
log.warning(err_msg)
|
||||||
return defer.fail(err_msg)
|
return defer.fail(Exception(err_msg))
|
||||||
return defer.succeed(_('Notification popup shown'))
|
return defer.succeed(_('Notification popup shown'))
|
||||||
|
|
||||||
def __play_sound(self, sound_path=''):
|
def __play_sound(self, sound_path=''):
|
||||||
|
@ -191,7 +193,7 @@ class GtkUiNotifications(CustomNotifications):
|
||||||
if not SOUND_AVAILABLE:
|
if not SOUND_AVAILABLE:
|
||||||
err_msg = _('pygame is not installed')
|
err_msg = _('pygame is not installed')
|
||||||
log.warning(err_msg)
|
log.warning(err_msg)
|
||||||
return defer.fail(err_msg)
|
return defer.fail(ImportError(err_msg))
|
||||||
|
|
||||||
pygame.init()
|
pygame.init()
|
||||||
try:
|
try:
|
||||||
|
@ -203,7 +205,7 @@ class GtkUiNotifications(CustomNotifications):
|
||||||
except pygame.error as ex:
|
except pygame.error as ex:
|
||||||
err_msg = _('Sound notification failed %s') % ex
|
err_msg = _('Sound notification failed %s') % ex
|
||||||
log.warning(err_msg)
|
log.warning(err_msg)
|
||||||
return defer.fail(err_msg)
|
return defer.fail(ex)
|
||||||
else:
|
else:
|
||||||
msg = _('Sound notification Success')
|
msg = _('Sound notification Success')
|
||||||
log.info(msg)
|
log.info(msg)
|
||||||
|
|
Loading…
Reference in New Issue