Browse Source

make title sorting skip the bit rate I prepend...

callbacks require a value to be triggered for some reason... (I should
probably investigate this)...

let loose all the genre's...  an upcoming commit doesn't explore
children, so it's much quicker now..

[git-p4: depot-paths = "//depot/": change = 850]
v0.3
John-Mark Gurney 19 years ago
parent
commit
c956e14610
1 changed files with 9 additions and 9 deletions
  1. +9
    -9
      shoutcast.py

+ 9
- 9
shoutcast.py View File

@@ -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



Loading…
Cancel
Save