Example #1
0
    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()
Example #2
0
    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 ''
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
 def REQ_swap(self):
     i = web.input()
     self.player.swap_entry(int(i['i1']), int(i['i2']))
     return ''
Example #6
0
 def REQ_move(self):
     i = web.input()
     start = get_index_or_slice(i['s'])
     self.player.move_entry(start, int(i['d']))
     return ''
Example #7
0
 def REQ_volume(self):
     i = web.input()
     val = i.get('val')
     if val is not None:
         self.player.volume(val)
     return ''
Example #8
0
 def REQ_save(self):
     name = web.input()['name']
     self.player.save(name)
     return 'saved %s'%name
Example #9
0
 def REQ_inject(self):
     try:
         self.player.playlist_change('inject', web.input()['name'])
         return ''
     except KeyError:
         return 'Not Found'
Example #10
0
 def REQ_append(self):
     self.player.playlist_change('append', web.input()['name'])
     return ''