def REQ_search(self): it = ('' for i in xrange(1)) try: i = web.input() tempname = False if i.get('pattern', '').startswith('http'): # http pattern try: uri = i.pattern.split()[0] hostname = uri.split("/", 3)[2] song_id = uri.rsplit('=', 1)[1] it = self.player.fetch_playlist(hostname, pattern=u'id: %s pls: +#'%song_id) except: # hardcore injection pls = self.player.playlist pls.inject( [str(uri), u'No artist', u'No album', 'External stream', 1000, None, None, 0] ) else: # standard pattern it = self.player.fetch_playlist(i.get('host', 'localhost'), pattern=i.pattern) it.next() except (IndexError, KeyError): DEBUG(False) except Exception, e: DEBUG()
def REQ_delete(self): i = web.input() try: i = get_index_or_slice(i['idx']) except ValueError: self.player.delete_playlist(i['idx']) else: self.player.delete_entry(i) return ''
def REQ_infos(self): format = web.input().get('fmt', 'txt') _d = self.player.selected or dict() # add player infos _d['song_position'] = self.player.position _d['paused'] = self.player._paused if format.startswith('htm'): web.header('Content-Type', 'text/html; charset=utf-8') return dump_data_as_text(_d, format)
def REQ_playlist(self): i = web.input() pls = self.player.playlist start = int(i.get('start', 0)) format = i.get('fmt', 'txt') if start < 0: start = len(pls) + start if i.get('res'): r = int(i.res) if r > 0: end = start + r else: # compute from end end = len(pls) + r else: end = len(pls) window_iterator = (pls[i] + [i] for i in xrange(start, min(len(pls), end))) return dump_data_as_text(window_iterator, format)
def REQ_swap(self): i = web.input() self.player.swap_entry(int(i['i1']), int(i['i2'])) return ''
def REQ_move(self): i = web.input() start = get_index_or_slice(i['s']) self.player.move_entry(start, int(i['d'])) return ''
def REQ_volume(self): i = web.input() val = i.get('val') if val is not None: self.player.volume(val) return ''
def REQ_save(self): name = web.input()['name'] self.player.save(name) return 'saved %s'%name
def REQ_inject(self): try: self.player.playlist_change('inject', web.input()['name']) return '' except KeyError: return 'Not Found'
def REQ_append(self): self.player.playlist_change('append', web.input()['name']) return ''