|
@@ 3414-3467 (lines=54) @@
|
| 3411 |
|
timestamp = track.getElementsByTagName( |
| 3412 |
|
"date")[0].getAttribute("uts") |
| 3413 |
|
|
| 3414 |
|
seq.append(LovedTrack( |
| 3415 |
|
Track(artist, title, self.network), date, timestamp)) |
| 3416 |
|
|
| 3417 |
|
return seq |
| 3418 |
|
|
| 3419 |
|
def get_neighbours(self, limit=50, cacheable=True): |
| 3420 |
|
"""Returns a list of the user's friends.""" |
| 3421 |
|
|
| 3422 |
|
params = self._get_params() |
| 3423 |
|
if limit: |
| 3424 |
|
params['limit'] = limit |
| 3425 |
|
|
| 3426 |
|
doc = self._request( |
| 3427 |
|
self.ws_prefix + '.getNeighbours', cacheable, params) |
| 3428 |
|
|
| 3429 |
|
seq = [] |
| 3430 |
|
names = _extract_all(doc, 'name') |
| 3431 |
|
|
| 3432 |
|
for name in names: |
| 3433 |
|
seq.append(User(name, self.network)) |
| 3434 |
|
|
| 3435 |
|
return seq |
| 3436 |
|
|
| 3437 |
|
def get_past_events(self, limit=50, cacheable=False): |
| 3438 |
|
""" |
| 3439 |
|
Returns a sequence of Event objects |
| 3440 |
|
if limit==None it will return all |
| 3441 |
|
""" |
| 3442 |
|
|
| 3443 |
|
seq = [] |
| 3444 |
|
for node in _collect_nodes( |
| 3445 |
|
limit, |
| 3446 |
|
self, |
| 3447 |
|
self.ws_prefix + ".getPastEvents", |
| 3448 |
|
cacheable): |
| 3449 |
|
seq.append(Event(_extract(node, "id"), self.network)) |
| 3450 |
|
|
| 3451 |
|
return seq |
| 3452 |
|
|
| 3453 |
|
def get_playlists(self): |
| 3454 |
|
"""Returns a list of Playlists that this user owns.""" |
| 3455 |
|
|
| 3456 |
|
doc = self._request(self.ws_prefix + ".getPlaylists", True) |
| 3457 |
|
|
| 3458 |
|
playlists = [] |
| 3459 |
|
for playlist_id in _extract_all(doc, "id"): |
| 3460 |
|
playlists.append( |
| 3461 |
|
Playlist(self.get_name(), playlist_id, self.network)) |
| 3462 |
|
|
| 3463 |
|
return playlists |
| 3464 |
|
|
| 3465 |
|
def get_now_playing(self): |
| 3466 |
|
""" |
| 3467 |
|
Returns the currently playing track, or None if nothing is playing. |
| 3468 |
|
""" |
| 3469 |
|
|
| 3470 |
|
params = self._get_params() |
|
@@ 2429-2455 (lines=27) @@
|
| 2426 |
|
doc = self._request('geo.getTopArtists', cacheable, params) |
| 2427 |
|
|
| 2428 |
|
return _extract_top_artists(doc, self) |
| 2429 |
|
|
| 2430 |
|
def get_top_tracks(self, limit=None, cacheable=True): |
| 2431 |
|
"""Returns a sequence of the most played tracks""" |
| 2432 |
|
params = self._get_params() |
| 2433 |
|
if limit: |
| 2434 |
|
params['limit'] = limit |
| 2435 |
|
|
| 2436 |
|
return self._get_things( |
| 2437 |
|
"getTopTracks", "track", Track, params, cacheable) |
| 2438 |
|
|
| 2439 |
|
def get_url(self, domain_name=DOMAIN_ENGLISH): |
| 2440 |
|
"""Returns the url of the event page on the network. |
| 2441 |
|
* domain_name: The network's language domain. Possible values: |
| 2442 |
|
o DOMAIN_ENGLISH |
| 2443 |
|
o DOMAIN_GERMAN |
| 2444 |
|
o DOMAIN_SPANISH |
| 2445 |
|
o DOMAIN_FRENCH |
| 2446 |
|
o DOMAIN_ITALIAN |
| 2447 |
|
o DOMAIN_POLISH |
| 2448 |
|
o DOMAIN_PORTUGUESE |
| 2449 |
|
o DOMAIN_SWEDISH |
| 2450 |
|
o DOMAIN_TURKISH |
| 2451 |
|
o DOMAIN_RUSSIAN |
| 2452 |
|
o DOMAIN_JAPANESE |
| 2453 |
|
o DOMAIN_CHINESE |
| 2454 |
|
""" |
| 2455 |
|
|
| 2456 |
|
country_name = _url_safe(self.get_name()) |
| 2457 |
|
|
| 2458 |
|
return self.network._get_url( |