parent
4f1b6f94fc
commit
6fb609cab4
|
@ -35,6 +35,7 @@ except ImportError:
|
|||
# Python 2.6 already ships with a nice "json" module
|
||||
import json
|
||||
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
|
||||
|
@ -47,6 +48,9 @@ import urllib
|
|||
CONSUMER_KEY = 'zrweghtEtnZLpXf3mlm8mQ'
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def soundcloud_parsedate(s):
|
||||
"""Parse a string into a unix timestamp
|
||||
|
||||
|
@ -142,9 +146,19 @@ class SoundcloudUser(object):
|
|||
try:
|
||||
json_url = 'https://api.soundcloud.com/users/%(user)s/%(feed)s.json?filter=downloadable&consumer_key=%(consumer_key)s&limit=200' \
|
||||
% { "user":self.get_user_id(), "feed":feed, "consumer_key": CONSUMER_KEY }
|
||||
logger.debug("loading %s", json_url)
|
||||
|
||||
tracks = (track for track in json.load(util.urlopen(json_url)) \
|
||||
if track['downloadable'])
|
||||
json_tracks = json.loads(util.urlopen(json_url).read().decode('utf-8'))
|
||||
tracks = [track for track in json_tracks if track['downloadable']]
|
||||
total_count = len(tracks) + len([track for track in json_tracks
|
||||
if not track['downloadable']])
|
||||
|
||||
if len(tracks) == 0 and total_count > 0:
|
||||
logger.warn("Download of all %i %s of user %s is disabled" %
|
||||
(total_count, feed, self.username))
|
||||
else:
|
||||
logger.info("%i/%i downloadable tracks for user %s %s feed" %
|
||||
(len(tracks), total_count, self.username, feed))
|
||||
|
||||
for track in tracks:
|
||||
# Prefer stream URL (MP3), fallback to download URL
|
||||
|
|
Loading…
Reference in New Issue