[now_listen] Make plugin compatible with latest Gajim version

This commit is contained in:
André Apitzsch
2018-09-23 10:50:58 +02:00
parent e4ffa1301f
commit 5c1207d072
2 changed files with 24 additions and 22 deletions

View File

@@ -1,7 +1,7 @@
[info] [info]
name: Now Listen name: Now Listen
short_name: now-listen short_name: now-listen
version: 0.3.1 version: 0.3.2
description: Copy tune info of playing music to conversation input box at cursor position (Alt + N) description: Copy tune info of playing music to conversation input box at cursor position (Alt + N)
authors = Denis Fomin <fominde@gmail.com> authors = Denis Fomin <fominde@gmail.com>
homepage = https://dev.gajim.org/gajim/gajim-plugins/wikis/NowListenPlugin homepage = https://dev.gajim.org/gajim/gajim-plugins/wikis/NowListenPlugin

View File

@@ -8,31 +8,28 @@ import logging
from gajim.plugins import GajimPlugin from gajim.plugins import GajimPlugin
from gajim.plugins.helpers import log_calls from gajim.plugins.helpers import log_calls
from gajim.plugins.gui import GajimPluginConfigDialog from gajim.plugins.gui import GajimPluginConfigDialog
from gajim.plugins.gajimplugin import GajimPluginException
from gajim.common import dbus_support
if dbus_support.supported:
from gajim.music_track_listener import MusicTrackListener
from gajim.music_track_listener import MusicTrackListener
log = logging.getLogger('gajim.plugin_system.now_listen') log = logging.getLogger('gajim.plugin_system.now_listen')
class NowListenPlugin(GajimPlugin): class NowListenPlugin(GajimPlugin):
@log_calls('NowListenPlugin') @log_calls('NowListenPlugin')
def init(self): def init(self):
self.description = _('Copy tune info of playing music to conversation ' self.description = _('Copy tune info of playing music to conversation '
'input box at cursor position (Alt + N)') 'input box at cursor position (Alt + N)')
self.config_dialog = NowListenPluginConfigDialog(self) self.config_dialog = NowListenPluginConfigDialog(self)
self.gui_extension_points = {'chat_control_base': self.gui_extension_points = {'chat_control_base':
(self.connect_with_chat_control, (self.connect_with_chat_control,
self.disconnect_from_chat_control)} self.disconnect_from_chat_control)}
self.config_default_values = { self.config_default_values = {
'format_string': 'format_string':
(_('Now listening to: "%title" by %artist from %album'), ''), (_('Now listening to: "%title" by %artist from %album'), ''),
'format_string_http': 'format_string_http':
(_('Now listening to: "%title" by %artist'), ''),} (_('Now listening to: "%title" by %artist'), ''), }
self.controls = [] self.controls = []
self.first_run = True self.first_run = True
@@ -55,22 +52,27 @@ class NowListenPlugin(GajimPlugin):
@log_calls('NowListenPlugin') @log_calls('NowListenPlugin')
def activate(self): def activate(self):
if not dbus_support.supported:
raise GajimPluginException(_('python-dbus is missing!'))
listener = MusicTrackListener.get() listener = MusicTrackListener.get()
if not self.music_track_changed_signal: if not self.music_track_changed_signal:
self.music_track_changed_signal = listener.connect( self.music_track_changed_signal = listener.connect(
'music-track-changed', self.music_track_changed) 'music-track-changed', self.music_track_changed)
track = listener.get_playing_track('org.mpris.MediaPlayer2') try:
self.music_track_changed(listener, track) listener.start()
except AttributeError:
track = listener.get_playing_track('org.mpris.MediaPlayer2')
self.music_track_changed(listener, track)
@log_calls('NowListenPlugin') @log_calls('NowListenPlugin')
def deactivate(self): def deactivate(self):
if dbus_support.supported: listener = MusicTrackListener.get()
listener = MusicTrackListener.get() if self.music_track_changed_signal:
if self.music_track_changed_signal: listener.disconnect(self.music_track_changed_signal)
listener.disconnect(self.music_track_changed_signal) self.music_track_changed_signal = None
self.music_track_changed_signal = None try:
listener.stop()
except AttributeError:
pass
def music_track_changed(self, unused_listener, music_track_info, def music_track_changed(self, unused_listener, music_track_info,
account=None): account=None):
@@ -131,9 +133,9 @@ class Base(object):
tune_string = format_string.\ tune_string = format_string.\
replace('%artist', self.plugin.artist).\ replace('%artist', self.plugin.artist).\
replace('%title', self.plugin.title).\ replace('%title', self.plugin.title).\
replace('%album',self.plugin.album).\ replace('%album', self.plugin.album).\
replace('%url', self.plugin.url) replace('%url', self.plugin.url)
message_buffer = self.chat_control.msg_textview.get_buffer() message_buffer = self.chat_control.msg_textview.get_buffer()
message_buffer.insert_at_cursor(tune_string) message_buffer.insert_at_cursor(tune_string)