summaryrefslogtreecommitdiffstats
path: root/addons/metadata.generic.albums/lib/fanarttv.py
blob: 18efbcde5cdec4cfb47558791fb91af301de1c2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# -*- coding: utf-8 -*-

def fanarttv_albumart(data):
    if 'albums' in data:
        albumdata = {}
        thumbs = []
        extras = []
        discs = {}
        for mbid, art in data['albums'].items():
            if 'albumcover' in art:
                for thumb in art['albumcover']:
                    thumbdata = {}
                    thumbdata['image'] = thumb['url']
                    thumbdata['preview'] = thumb['url'].replace('/fanart/', '/preview/')
                    thumbdata['aspect'] = 'thumb'
                    thumbs.append(thumbdata)
            if 'cdart' in art:
                for cdart in art['cdart']:
                    extradata = {}
                    extradata['image'] = cdart['url']
                    extradata['preview'] = cdart['url'].replace('/fanart/', '/preview/')
                    extradata['aspect'] = 'discart'
                    extras.append(extradata)
                    # support for multi-disc albums
                    multidata = {}
                    num = cdart['disc']
                    multidata['image'] = cdart['url']
                    multidata['preview'] = cdart['url'].replace('/fanart/', '/preview/')
                    multidata['aspect'] = 'discart%s' % num
                    if not num in discs:
                        discs[num] = [multidata]
                    else:
                        discs[num].append(multidata)
        if thumbs:
            albumdata['thumb'] = thumbs
        # only return for multi-discs, not single discs
        if len(discs) > 1:
            for k, v in discs.items():
                for item in v:
                    extras.append(item)
        if extras:
            albumdata['extras'] = extras
        return albumdata