def updated(res): log.debug('playlist updated') if len(self.tracks) > 0: self.mpd.idArray = id_array(self.tracks) self.mpd.oh_eventPLAYLIST(self.mpd.idArray, 'idarray') self.plsversion = self.mpd.status['playlist'] if tid: if int(tid) in self.tracks: dd.callback(tid) else: dd.errback()
def update_playlist(self, playlist): def format_track(track): # log.error('format: %s' % track['id']) en = et.Element('Entry') i = et.Element('Id') if 'id' not in track: log.critical('issue with playlist :%s' % track) i.text = track['id'].decode('utf-8') en.append(i) uri = et.Element('Uri') uri.text = track['url'].decode('utf-8') en.append(uri) md = et.Element('Metadata') md.text = didl_encode(track) en.append(md) return en def setter(res, pos): # print('playlist detail: %s %s' % (pos, res)) self.playlist_details[pos] = res if playlist is not None: if not isinstance(playlist, list): playlist = [playlist] if int(self.status['playlistlength']) == 0: self.playlist = [] self.playlist_details = [] else: delta = int(self.status['playlistlength']) - len(self.playlist) # print('delta= %d' % delta) if delta >= 0: for track in playlist: # self.cache_cover(track) try: if int(track['Pos']) >= len(self.playlist): self.playlist.append(int(track['Id'])) d = self.call('playlistid', track['Id']) d.addCallback(self.get_cover, track['Id']) d.addCallback(mpd_decode) d.addCallback(format_track) d.addCallback(self.playlist_details.append) else: self.playlist[int(track['Pos'])] = int( track['Id']) d = self.call('playlistid', track['Id']) d.addCallback(self.get_cover) d.addCallback(mpd_decode) d.addCallback(format_track) d.addCallback(setter, int(track['Pos'])) except: continue else: for track in playlist: if 'Id' not in track: continue if track == {}: self.playlist.pop() self.playlist_details.pop() delta += 1 continue if delta < 0: self.playlist.pop(int(track['Pos'])) self.playlist_details.pop(int(track['Pos'])) delta += 1 else: self.playlist[int(track['Pos'])] = int(track['Id']) d = self.call('playlistid', track['Id']) d.addCallback(self.get_cover) d.addCallback(mpd_decode) d.addCallback(format_track) d.addCallback(setter, int(track['Pos'])) self.idArray = id_array(self.playlist) self.oh_eventPLAYLIST(self.idArray, 'idarray')
def update_playlist(self, playlist): def format_track(track): # log.error('format: %s' % track['id']) en = et.Element('Entry') i = et.Element('Id') if 'id' not in track: log.critical('issue with playlist :%s' % track) i.text = track['id'].decode('utf-8') en.append(i) uri = et.Element('Uri') uri.text = track['url'].decode('utf-8') en.append(uri) md = et.Element('Metadata') md.text = didl_encode(track) en.append(md) return en def setter(res, pos): # print('playlist detail: %s %s' % (pos, res)) self.playlist_details[pos] = res if playlist is not None: if not isinstance(playlist, list): playlist = [playlist] if int(self.status['playlistlength']) == 0: self.playlist = [] self.playlist_details = [] else: delta = int(self.status['playlistlength']) - len(self.playlist) # print('delta= %d' % delta) if delta >= 0: for track in playlist: # self.cache_cover(track) try: if int(track['Pos']) >= len(self.playlist): self.playlist.append(int(track['Id'])) d = self.call('playlistid', track['Id']) d.addCallback(self.get_cover, track['Id']) d.addCallback(mpd_decode) d.addCallback(format_track) d.addCallback(self.playlist_details.append) else: self.playlist[int( track['Pos'])] = int(track['Id']) d = self.call('playlistid', track['Id']) d.addCallback(self.get_cover) d.addCallback(mpd_decode) d.addCallback(format_track) d.addCallback(setter, int(track['Pos'])) except: continue else: for track in playlist: if 'Id' not in track: continue if track == {}: self.playlist.pop() self.playlist_details.pop() delta += 1 continue if delta < 0: self.playlist.pop(int(track['Pos'])) self.playlist_details.pop(int(track['Pos'])) delta += 1 else: self.playlist[int(track['Pos'])] = int(track['Id']) d = self.call('playlistid', track['Id']) d.addCallback(self.get_cover) d.addCallback(mpd_decode) d.addCallback(format_track) d.addCallback(setter, int(track['Pos'])) self.idArray = id_array(self.playlist) self.oh_eventPLAYLIST(self.idArray, 'idarray')