Example #1
0
    def generate_station_list(self, arg=None, menuw=None):
        """
        Generates the Station List
        """
        stationlist = []
        pop = ProgressBox(text=_('Fetching station list for %s') % arg, full=2)
        pop.show()
        xmlfile = self.retrievexml(arg)
        pop.tick()

        if xmlfile == None:
            stationlist = [
                menu.MenuItem(_('Error retrieving stations'),
                              action=menuw.back_one_menu,
                              arg=None)
            ]
        else:
            try:
                parser = make_parser()
                parseStationXML = StationParser()
                parser.setContentHandler(parseStationXML)
                parser.parse(xmlfile)
                for station in parseStationXML.stationlist:
                    statid = urllib2.quote(station["id"])
                    statname = station["name"]
                    statbr = station["br"]
                    statct = station['ct']
                    if int(statbr) >= self.min_bitrate and (
                            self.max_bitrate == 0
                            or int(statbr) <= self.max_bitrate):
                        stationitem = AudioItem(
                            'http://www.shoutcast.com%s?id=%s' %
                            (parseStationXML.tunein, statid), self, statname,
                            False)
                        stationitem.player = 'mplayer'
                        stationitem.reconect = True
                        stationitem.network_play = True
                        stationitem.is_playlist = True
                        stationitem.bitrate = int(statbr)
                        stationitem.length = 0
                        stationitem.remain = 0
                        stationitem.info = {
                            'title':
                            statname,
                            'description':
                            '%s - %skbs' % (station['genre'], statbr)
                        }
                        stationlist.append(stationitem)
                    stationlist.sort(key=self.stationsortkey)
            except:
                stationlist = [
                    menu.MenuItem(_('Error retrieving stationlist'),
                                  action=menuw.back_one_menu,
                                  arg=None)
                ]

            stationmenu = menu.Menu(arg, stationlist, item_types='audio')
            menuw.pushmenu(stationmenu)
            menuw.refresh()
            pop.destroy()
Example #2
0
    def generate_station_list(self, arg=None, menuw=None):
        """
        Generates the Station List
        """
        stationlist = []
        pop = ProgressBox(text = _('Fetching station list for %s') % arg, full = 2)
        pop.show()
        xmlfile = self.retrievexml(arg)
        pop.tick()

        if xmlfile == None:
            stationlist = [ menu.MenuItem( _('Error retrieving stations'), action = menuw.back_one_menu, arg = None) ]
        else:
            try:
                parser = make_parser()
                parseStationXML = StationParser()
                parser.setContentHandler(parseStationXML)
                parser.parse(xmlfile)
                for station in parseStationXML.stationlist:
                    statid = urllib2.quote(station["id"])
                    statname = station["name"]
                    statbr = station["br"]
                    statct = station['ct']
                    if int(statbr) >= self.min_bitrate and (self.max_bitrate == 0 or int(statbr) <= self.max_bitrate):
                        stationitem = AudioItem('http://www.shoutcast.com%s?id=%s' % (parseStationXML.tunein, statid), self, statname, False)
                        stationitem.player = 'mplayer'
                        stationitem.reconect = True
                        stationitem.network_play = True
                        stationitem.is_playlist = True
                        stationitem.bitrate = int(statbr)
                        stationitem.length = 0
                        stationitem.remain = 0
                        stationitem.info = {'title':statname, 'description':'%s - %skbs' % (station['genre'], statbr) }
                        stationlist.append(stationitem)
                    stationlist.sort(key = self.stationsortkey)
            except:
                stationlist = [ menu.MenuItem( _('Error retrieving stationlist'), action = menuw.back_one_menu, arg = None) ]

            stationmenu = menu.Menu( arg, stationlist, item_types = 'audio' )
            menuw.pushmenu(stationmenu)
            menuw.refresh()
            pop.destroy()
Example #3
0
def getAudioItemsLazily(parent, callable, *args, **kwargs):
    for filename in callable(*args, **kwargs):
        yield AudioItem(filename, parent)
Example #4
0
    def __builditem(self, station):
        statbr = station['bitrate']
        try:
            statbr_int = int(statbr)
        except:
            statbr = "0"

        stationitem = AudioItem(station['listen_url'], self, station['name'],
                                False)
        stationitem.player = 'mplayer'
        stationitem.reconect = True
        stationitem.network_play = True
        if station['listen_url'].find(
                '.', -6) == -1 and station['audiotype'] == 'MP3':
            stationitem.is_playlist = True
        else:
            stationitem.is_playlist = False

        stationitem.is_playlist = False
        if station['audiotype'][:3] == 'AAC':
            stationitem.mplayer_options = '-demuxer aac'
        elif station['audiotype'] == 'OGG':
            stationitem.mplayer_options = '-demuxer ogg'
        #else:
        #stationitem.mplayer_options = '-demuxer audio'

        stationitem.bitrate = int(statbr)
        stationitem.length = 0
        stationitem.remain = 0
        stationitem.info = {
            'title':
            station['name'],
            'description':
            '%s - %skbs - %s' %
            (station['audiotype'], statbr, " ".join(station['genres'].keys()))
        }
        return stationitem
Example #5
0
    def __builditem(self, station):
        statbr = station['bitrate']
        try:
            statbr_int = int(statbr)
        except:
            statbr = "0"

        stationitem = AudioItem(station['listen_url'], self, station['name'], False)
        stationitem.player = 'mplayer'
        stationitem.reconect = True
        stationitem.network_play = True
        if station['listen_url'].find('.',-6) == -1 and station['audiotype'] == 'MP3':
            stationitem.is_playlist = True
        else:
            stationitem.is_playlist = False

        stationitem.is_playlist = False
        if station['audiotype'][:3] == 'AAC':
            stationitem.mplayer_options = '-demuxer aac'
        elif station['audiotype'] == 'OGG':
            stationitem.mplayer_options = '-demuxer ogg'
        #else:
            #stationitem.mplayer_options = '-demuxer audio'

        stationitem.bitrate = int(statbr)
        stationitem.length = 0
        stationitem.remain = 0
        stationitem.info = {
            'title':station['name'],
            'description':'%s - %skbs - %s' % (station['audiotype'], statbr, " ".join(station['genres'].keys()))
        }
        return stationitem