def test_same_artwork(self):
        md1=Metadata("artist1","song1")
        md1.artUrl = "http://art1"

        md2=Metadata("artist1","song1")
        md2.artUrl = "http://art1"
        md2.externalArtUrl = "http://art2"
        
        md3=Metadata("artist1","song1")
        md3.artUrl = "http://art3"
        md3.externalArtUrl = "http://art1"
        
        self.assertTrue(md1.sameArtwork(md1))
        self.assertTrue(md1.sameArtwork(md2))
        self.assertFalse(md1.sameArtwork(md3))
        self.assertFalse(md2.sameArtwork(md3))
示例#2
0
    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