def test_guess(self):
     md=Metadata("","Bruce Springsteen - The River")
     md.fix_problems(guess=True)
     
     self.assertEqual(md.artist,"Bruce Springsteen")
     self.assertEqual(md.title,"The River")
     
     md=Metadata("","The River - Bruce Springsteen")
     md.fix_problems(guess=True)
     
     self.assertEqual(md.artist,"Bruce Springsteen")
     self.assertEqual(md.title,"The River")
     
     md=Metadata("","Michael Kiwanuka - You Ain't The Problem")
     md.fix_problems(guess=True)
     
     self.assertEqual(md.artist,"Michael Kiwanuka")
     self.assertEqual(md.title,"You Ain't The Problem")
Esempio n. 2
0
    def retrieveMeta(self, name):
        """
        Return the metadata for the given player instance
        """
        try:
            device_prop = self.dbus_get_device_prop_interface(name)
            prop = device_prop.Get("org.mpris.MediaPlayer2.Player", "Metadata")
            try:
                artist = array_to_string(prop.get("xesam:artist"))
            except:
                artist = None

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

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

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

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

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

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

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

            try:
                md.streamUrl = prop.get("xesam:url")
            except:
                pass

            try:
                md.trackId = prop.get("mpris:trackid")
            except:
                pass

            md.playerName = self.playername(name)

            md.fix_problems()

            return md

        except dbus.exceptions.DBusException as e:
            if "ServiceUnknown" in e.__class__.__name__:
                # unfortunately we can't do anything about this and
                # logging doesn't help, therefore just ignoring this case
                pass
                #  logging.warning("service %s disappered, cleaning up", e)
            else:
                logging.warning("no mpris data received %s",
                                e.__class__.__name__)

            md = Metadata()
            md.playerName = self.playername(name)
            return md