def test_get_cover(self): md = Metadata() # A Rush of Blood to the Head, Coldplay md.artist = "Coldplay" # Necessary as unknown song won't be retrieved md.albummbid = "219b202d-290e-3960-b626-bf852a63bc50" self.assertIsNone(md.artUrl) self.assertIsNone(md.externalArtUrl) coverartarchive.enrich_metadata(md) self.assertIsNone(md.artUrl) self.assertIsNotNone(md.externalArtUrl)
def test_get_cover(self): md = Metadata() # A Rush of Blood to the Head, Coldplay md.artist = "Coldplay" md.mbid = "58b961e1-a2ef-4e92-a82b-199b15bb3cd8" md.albummbid = "219b202d-290e-3960-b626-bf852a63bc50" self.assertIsNone(md.artUrl) self.assertIsNone(md.externalArtUrl) hifiberry.enrich_metadata(md) # Cover might be be in cache at the HiFiBerry musicdb, # in this case try again a few seconds later if md.externalArtUrl is None: sleep(5) hifiberry.enrich_metadata(md) self.assertIsNone(md.artUrl) self.assertIsNotNone(md.externalArtUrl)
def tmux_scraper(self): logging.info('tidalcontrol::tmux_scraper') cmd = 'docker exec -ti tidal_connect /usr/bin/tmux capture-pane -pS -10' stdout = subprocess.check_output(cmd.split()) WINDOW_SIZE = 40 WINDOW_COUNT = 2 VALUE_MAP = {} for line in stdout.decode('utf-8').splitlines(): if line.startswith('PlaybackState::'): VALUE_MAP['state'] = line.split('::')[1] # parse props if line.startswith('xx', WINDOW_SIZE - 1): for window_cnt in range(WINDOW_COUNT): str_keyvals = (line[(WINDOW_SIZE * window_cnt) + 1:(WINDOW_SIZE * (window_cnt + 1)) - 1].strip()) ar_props = str_keyvals.split(':') if len(ar_props) > 1: key = (ar_props[0].replace(' ', '_')) value = ''.join(ar_props[1:]).strip() sess_state_prefix = 'SessionState' if value.startswith(sess_state_prefix): value = value[len(sess_state_prefix):] VALUE_MAP[key] = value # parse volume if line.endswith('#k'): value = line.strip() VALUE_MAP["volume"] = value.count("#") self.state = VALUE_MAP["state"] md = Metadata() md.playerName = "Tidal" md.artist = VALUE_MAP['artists'] md.title = VALUE_MAP['title'] md.albumTitle = VALUE_MAP['album_name'] md.duration = VALUE_MAP['duration'] md.artUrl = None md.externalArtUrl = None ''' self.artist = artist self.title = title self.albumArtist = albumArtist self.albumTitle = albumTitle self.artUrl = artUrl self.externalArtUrl = None self.discNumber = discNumber self.tracknumber = trackNumber self.playerName = playerName self.playerState = playerState self.streamUrl = streamUrl self.playCount = None self.mbid = None self.artistmbid = None self.albummbid = None self.loved = None self.wiki = None self.loveSupported = Metadata.loveSupportedDefault self.tags = [] self.skipped = False self.host_uuid = None self.releaseDate = None self.trackid = None self.hifiberry_cover_found=False self.duration=0 self.time=0 self.position=0 # poosition in seconds self.positionupdate=time() # last time position has been updated ''' self.meta = md