Switch to unified view

a/src/cdplugins/qobuz/session.py b/src/cdplugins/qobuz/session.py
...
...
3
# much alone as possible.
3
# much alone as possible.
4
from __future__ import print_function
4
from __future__ import print_function
5
5
6
import sys
6
import sys
7
import json
7
import json
8
from upmplgmodels import Artist, Album, Track, Playlist, SearchResult, Category
8
from upmplgmodels import Artist, Album, Track, Playlist, SearchResult, \
9
     Category, Genre
9
from qobuz.api import raw
10
from qobuz.api import raw
10
11
11
class Session(object):
12
class Session(object):
12
    def __init__(self):
13
    def __init__(self):
13
        self.api = None
14
        self.api = None
...
...
35
36
36
    def get_album_tracks(self, albid):
37
    def get_album_tracks(self, albid):
37
        data = self.api.album_get(album_id = albid)
38
        data = self.api.album_get(album_id = albid)
38
        album = _parse_album(data)
39
        album = _parse_album(data)
39
        return [_parse_track(t, album) for t in data['tracks']['items']]
40
        return [_parse_track(t, album) for t in data['tracks']['items']]
41
42
    def get_featured_albums(self, genre_id=None):
43
        data = self.api.album_getFeatured(type='editor-picks',
44
                                          genre_id=genre_id, limit=50)
45
        if data and 'albums' in data:
46
            return [_parse_album(alb) for alb in data['albums']['items']]
47
        return []
40
48
41
    def get_playlist_tracks(self, plid):
49
    def get_playlist_tracks(self, plid):
42
        data = self.api.playlist_get(playlist_id = plid, extra = 'tracks')
50
        data = self.api.playlist_get(playlist_id = plid, extra = 'tracks')
43
        #print("PLAYLIST: %s" % json.dumps(data, indent=4), file=sys.stderr)
51
        #print("PLAYLIST: %s" % json.dumps(data, indent=4), file=sys.stderr)
44
        return [_parse_track(t) for t in data['tracks']['items']]
52
        return [_parse_track(t) for t in data['tracks']['items']]
...
...
88
                if 'playlists' in data:
96
                if 'playlists' in data:
89
                    return [_parse_playlist(pl) for pl in \
97
                    return [_parse_playlist(pl) for pl in \
90
                            data['playlists']['items']]
98
                            data['playlists']['items']]
91
        return []
99
        return []
92
100
101
    def get_genres(self, parent=None):
102
        data = self.api.genre_list(parent_id=parent)
103
        return [_parse_genre(g) for g in data['genres']['items']]
104
93
    def search(self, query, tp):
105
    def search(self, query, tp):
94
        data = self.api.catalog_search(query=query, type=tp)
106
        data = self.api.catalog_search(query=query, type=tp)
95
        try:
107
        try:
96
            ar = [_parse_artist(i) for i in data['artists']['items']]
108
            ar = [_parse_artist(i) for i in data['artists']['items']]
97
        except:
109
        except:
...
...
112
124
113
125
114
def _parse_artist(json_obj):
126
def _parse_artist(json_obj):
115
    artist = Artist(id=json_obj['id'], name=json_obj['name'])
127
    artist = Artist(id=json_obj['id'], name=json_obj['name'])
116
    return artist
128
    return artist
129
130
def _parse_genre(data):
131
    return Genre(id=data['id'], name=data['name'])
117
132
118
def _parse_album(json_obj, artist=None, artists=None):
133
def _parse_album(json_obj, artist=None, artists=None):
119
    if artist is None and 'artist' in json_obj:
134
    if artist is None and 'artist' in json_obj:
120
        artist = _parse_artist(json_obj['artist'])
135
        artist = _parse_artist(json_obj['artist'])
121
    #if artists is None:
136
    #if artists is None: