Skip to content

Commit

Permalink
gnome-extra/gnome-integration-spotify: fix dbus integration
Browse files Browse the repository at this point in the history
Closes: https://bugs.gentoo.org/782433
Package-Manager: Portage-3.0.17, Repoman-3.0.2
RepoMan-Options: --force
Signed-off-by: Matthew Thode <[email protected]>
  • Loading branch information
prometheanfire committed Apr 20, 2021
1 parent 9273c4a commit 2f8d66d
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- spotify-dbus.py_orig 2021-04-12 11:11:00.710360694 +0200
+++ spotify-dbus.py 2021-04-12 11:53:06.208197383 +0200
@@ -632,7 +636,7 @@
self.action_trigger('play')

# Play/pause (0.6)
- elif '--playpause' or 'playpause' in sys.argv:
+ elif '--playpause' in sys.argv or 'playpause' in sys.argv:
self.action_trigger('playpause')

# Stop
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
--- spotify-dbus.py_orig 2021-04-12 11:11:00.710360694 +0200
+++ spotify-dbus.py 2021-04-12 11:50:55.946631871 +0200
@@ -227,8 +227,7 @@
if self.debug == True:
print("Opening " + param + "...")

- window = self.get_window()
- window._openLink(param)
+ self.player.OpenUri(param)

# Action listener
def action_listener(self, id = 0, action = ''):
@@ -322,8 +321,8 @@
# Get the player object
def get_player(self):
try:
- proxyobj = self.bus.get_object('org.mpris.MediaPlayer2.spotify', '/')
- pl = dbus.Interface(proxyobj, 'org.freedesktop.MediaPlayer2')
+ proxyobj = self.bus.get_object('org.mpris.MediaPlayer2.spotify', '/org/mpris/MediaPlayer2')
+ pl = dbus.Interface(proxyobj, 'org.mpris.MediaPlayer2.Player')
except dbus.DBusException:
pl = False

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
--- spotify-dbus.py_orig 2021-04-12 11:11:00.710360694 +0200
+++ spotify-dbus.py 2021-04-12 11:23:16.895644502 +0200
@@ -39,7 +39,7 @@
import sys
import dbus
import time
-from gi.repository import GObject
+from gi.repository import GLib
import hashlib
import sys
if (sys.version_info) < (3, 0):
@@ -146,8 +146,8 @@
interface.connect_to_signal('ActionInvoked', self.action_listener)

interface.connect_to_signal('NotificationClosed', self.action_dismisser)
- GObject.threads_init()
- GObject.timeout_add(self.timeout * 10, self.action_listener)
+ GLib.threads_init()
+ GLib.timeout_add(self.timeout * 10, self.action_listener)

return self.nid

@@ -532,7 +532,7 @@
self.locale = locale

# loop must be global to can quit from listener
- self.loop = GObject.MainLoop()
+ self.loop = GLib.MainLoop()

# Prepare loop for interactive notifications or daemon mode
self.dloop = DBusGMainLoop()
@@ -606,7 +606,7 @@

# Start loop listening for track changes
try:
- GObject.timeout_add(100, self.change_listener)
+ GLib.timeout_add(100, self.change_listener)
self.loop.run()
except KeyboardInterrupt:
print('Stopping daemon...')
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6
Expand Down Expand Up @@ -28,6 +28,12 @@ RDEPEND="${DEPEND}
x11-misc/xdotool
x11-apps/xwininfo"

PATCHES=(
"${FILESDIR}/gnome-integration-spotify-command-line-parsing.patch"
"${FILESDIR}/gnome-integration-spotify-correct-interface.patch"
"${FILESDIR}/gnome-integration-spotify-use-glib.patch"
)

src_install() {
dobin spotify-dbus.py
python_replicate_script "${ED}"/usr/bin/spotify-dbus.py
Expand Down

0 comments on commit 2f8d66d

Please sign in to comment.