~ubuntu-branches/ubuntu/vivid/gpodder/vivid-proposed

« back to all changes in this revision

Viewing changes to src/gpodder/soundcloud.py

  • Committer: Bazaar Package Importer
  • Author(s): tony mancill
  • Date: 2010-12-05 17:08:02 UTC
  • mfrom: (5.3.2 experimental) (5.2.10 sid)
  • Revision ID: james.westby@ubuntu.com-20101205170802-qbsq7r331j21np1i
Tags: 2.10-1
* New upstream release
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
#
20
20
 
21
21
# Soundcloud.com API client module for gPodder
22
 
# Thomas Perl <thpinfo.com>; 2009-11-03
 
22
# Thomas Perl <thp@gpodder.org>; 2009-11-03
23
23
 
24
24
import gpodder
25
25
 
44
44
import email.Header
45
45
 
46
46
 
 
47
# gPodder's consumer key for the Soundcloud API
 
48
CONSUMER_KEY = 'zrweghtEtnZLpXf3mlm8mQ'
 
49
 
 
50
 
47
51
def soundcloud_parsedate(s):
48
52
    """Parse a string into a unix timestamp
49
53
 
107
111
        json.dump(self.cache, open(self.cache_file, 'w'))
108
112
 
109
113
    def get_coverart(self):
 
114
        global CONSUMER_KEY
110
115
        key = ':'.join((self.username, 'avatar_url'))
111
116
        if key in self.cache:
112
117
            return self.cache[key]
113
118
 
114
119
        image = None
115
120
        try:
116
 
            json_url = 'http://api.soundcloud.com/users/%s.json' % self.username
 
121
            json_url = 'http://api.soundcloud.com/users/%s.json?consumer_key=%s' % (self.username, CONSUMER_KEY)
117
122
            user_info = json.load(util.urlopen(json_url))
118
123
            image = user_info.get('avatar_url', None)
119
124
            self.cache[key] = image
127
132
 
128
133
        The generator will give you a dictionary for every
129
134
        track it can find for its user."""
 
135
        global CONSUMER_KEY
130
136
        try:
131
 
            json_url = 'http://api.soundcloud.com/users/%(user)s/%(feed)s.json?filter=downloadable' \
132
 
                    % { "user":self.username, "feed":feed }
 
137
            json_url = 'http://api.soundcloud.com/users/%(user)s/%(feed)s.json?filter=downloadable&consumer_key=%(consumer_key)s' \
 
138
                    % { "user":self.username, "feed":feed, "consumer_key": CONSUMER_KEY }
133
139
            tracks = (track for track in json.load(util.urlopen(json_url)) \
134
140
                    if track['downloadable'])
135
141
 
136
142
            for track in tracks:
137
143
                # Prefer stream URL (MP3), fallback to download URL
138
 
                url = track.get('stream_url', track['download_url'])
 
144
                url = track.get('stream_url', track['download_url']) + \
 
145
                    '?consumer_key=%(consumer_key)s' \
 
146
                    % { 'consumer_key': CONSUMER_KEY }
139
147
                if url not in self.cache:
140
148
                    try:
141
149
                        self.cache[url] = get_metadata(url)