Example #1
0
    def retrieveMeta(self, name):
        """
        Return the metadata for the given player instance
        """
        try:
            proxy = self.bus.get_object(name, "/org/mpris/MediaPlayer2")
            device_prop = dbus.Interface(
                proxy, "org.freedesktop.DBus.Properties")
            prop = device_prop.Get(
                "org.mpris.MediaPlayer2.Player", "Metadata")
            try:
                artist = array_to_string(prop.get("xesam:artist"))
            except:
                artist = None

            try:
                title = str(prop.get("xesam:title"))
            except:
                title = None

            try:
                albumArtist = array_to_string(prop.get("xesam:albumArtist"))
            except:
                albumArtist = None

            try:
                albumTitle = str(prop.get("xesam:album"))
            except:
                albumTitle = None

            try:
                artURL = str(prop.get("mpris:artUrl"))
            except:
                artURL = None

            try:
                discNumber = str(prop.get("xesam:discNumber"))
            except:
                discNumber = None

            try:
                trackNumber = str(prop.get("xesam:trackNumber"))
            except:
                trackNumber = None

            md = Metadata(artist, title, albumArtist, albumTitle,
                          artURL, discNumber, trackNumber)

            md.playerName = self.playername(name)

            md.fixProblems()

            return md

        except dbus.exceptions.DBusException as e:
            logging.debug(e)