summaryrefslogtreecommitdiffstats
path: root/addons/metadata.generic.albums/lib/fanarttv.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/metadata.generic.albums/lib/fanarttv.py')
-rw-r--r--addons/metadata.generic.albums/lib/fanarttv.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/addons/metadata.generic.albums/lib/fanarttv.py b/addons/metadata.generic.albums/lib/fanarttv.py
new file mode 100644
index 0000000..18efbcd
--- /dev/null
+++ b/addons/metadata.generic.albums/lib/fanarttv.py
@@ -0,0 +1,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