Fix soundcloud feeds by using user id for track lists

This commit is contained in:
Christof Damian 2017-03-06 13:46:00 +01:00
parent a07e91f990
commit e7f34ad090
1 changed files with 15 additions and 7 deletions

View File

@ -109,22 +109,29 @@ class SoundcloudUser(object):
def commit_cache(self):
json.dump(self.cache, open(self.cache_file, 'w'))
def get_coverart(self):
def get_user_info(self):
global CONSUMER_KEY
key = ':'.join((self.username, 'avatar_url'))
key = ':'.join((self.username, 'user_info'))
if key in self.cache:
return self.cache[key]
image = None
try:
json_url = 'http://api.soundcloud.com/users/%s.json?consumer_key=%s' % (self.username, CONSUMER_KEY)
user_info = json.load(util.urlopen(json_url))
image = user_info.get('avatar_url', None)
self.cache[key] = image
self.cache[key] = user_info
finally:
self.commit_cache()
return image
return user_info
def get_coverart(self):
user_info = self.get_user_info()
return user_info.get('avatar_url', None)
def get_user_id(self):
user_info = self.get_user_info()
return user_info.get('id', None)
def get_tracks(self, feed):
"""Get a generator of tracks from a SC user
@ -134,7 +141,8 @@ class SoundcloudUser(object):
global CONSUMER_KEY
try:
json_url = 'http://api.soundcloud.com/users/%(user)s/%(feed)s.json?filter=downloadable&consumer_key=%(consumer_key)s&limit=200' \
% { "user":self.username, "feed":feed, "consumer_key": CONSUMER_KEY }
% { "user":self.get_user_id(), "feed":feed, "consumer_key": CONSUMER_KEY }
tracks = (track for track in json.load(util.urlopen(json_url)) \
if track['downloadable'])