J'ai converti un script gnome python pour utiliser les notifications KDE chaque fois que Spotify change de piste. Le code est ci-dessous:Mise à jour de la notification à l'aide de KNotify
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Title: Spotify Notification Demo
Author: Stuart Colville, http://muffinresearch.co.uk
Modified to work with KDE: Steve Nixon
License: BSD
"""
import dbus
import gobject
from dbus.mainloop.glib import DBusGMainLoop
class SpotifyNotifier(object):
def __init__(self):
"""initialise."""
bus_loop = DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus(mainloop=bus_loop)
loop = gobject.MainLoop()
self.spotify = bus.get_object("org.mpris.spotify", "/")
self.spotify.connect_to_signal("TrackChange", self.track_changed)
self.notify_id = None
loop.run()
def track_changed(self, metadata):
"""Handle track changes."""
if metadata:
title = unicode(metadata.get("title").encode("latin-1"), "utf-8")
album = unicode(metadata.get("album").encode("latin-1"), "utf-8")
artist = unicode(metadata.get("artist").encode("latin-1"), "utf-8")
knotify = dbus.SessionBus().get_object("org.kde.knotify", "/Notify")
knotify.event("warning", "kde", [], title, u"by %s from %s" % (artist, album), [], [], 0, 0, dbus_interface="org.kde.KNotify")
if __name__ == "__main__":
SpotifyNotifier()
Cela fonctionne bien pour chaque notification, mais laisse l'entrée dans la zone KNotify indéfiniment.
Puis-je soit
a) mettre à jour l'événement à l'aide d'un ID et knotify.update? Je suppose donc, mais je ne sais pas comment vérifier l'existence initiale de l'événement pour utiliser knotify.event la première fois et knotify.update pour chaque ultérieure.
b) Fermez l'événement au bout de 30 secondes (environ)
c) Fermer l'événement à la fin de la chanson (mieux que l'option b), mais est livré avec le même problème des ID de suivi que je havre de paix « t travaillé comment faire)
Vive pour toute aide,
Oh, si quelqu'un sait aussi comment arrêter faire un peu de bruit « piano » quand il avertit que serait super aussi!
Steve