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")
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