@@ -27,6 +27,10 @@ def cmpStation(a, b, keys = ( 'MimeType', 'Name', 'PLS_URL', 'Bitrate' )):
return False
return True
def stationwbitratecmp(x, y):
x, y = map(lambda a: a.title.split('-', 1)[1], (x, y))
return cmp(x, y)
class GenreFeedAsync(feeds.GenreFeed):
genre_url = 'http://www.shoutcast.com/sbin/newxml.phtml'
@@ -40,7 +44,7 @@ class GenreFeedAsync(feeds.GenreFeed):
self.havegenre = True
# Wake everyone up
self.fetchinggenre.callback(None )
self.fetchinggenre.callback(1 )
def errGenre(self, failure):
raise NotImplementedError, failure
@@ -76,7 +80,7 @@ class ShoutcastFeedAsync(feeds.ShoutcastFeed):
self.havestations = True
# Wake everyone up
self.fetchingstations.callback(None )
self.fetchingstations.callback(1 )
def errStations(self, failure):
raise NotImplementedError, failure
@@ -198,7 +202,7 @@ class ShoutProxy(resource.Resource):
self.dump_exc()
return
self.afterurls.callback(None )
self.afterurls.callback(1 )
self.afterurls = None
def errPLS(self, failure):
@@ -253,10 +257,6 @@ class ShoutStation(AudioItem):
self.station['MimeType'].encode('ascii'))
self.bitrate = self.station['Bitrate'] * 128 # 1024k / 8bit
def stationwbitratecmp(x, y):
x, y = map(lambda x: x.split('-', 1)[1], (x, y))
return cmp(x, y)
class ShoutGenre(MusicGenre):
def __init__(self, *args, **kwargs):
self.genre = kwargs['genre']
@@ -321,7 +321,7 @@ class ShoutGenre(MusicGenre):
self.sl = stations
# sort our children
self.sort(lambda x, y: cmp(x.title, y.title ))
self.sort(lambda *a: stationwbitratecmp(*a ))
if doupdate:
Container.doUpdate(self)
@@ -339,7 +339,7 @@ class ShoutCast(Container):
def doUpdate(self):
#traceback.print_stack(file=log.logfile)
nl = self.genres.parse_genres()[:30]
nl = self.genres.parse_genres()
if nl == self.genre_list:
return