summaryrefslogtreecommitdiffstats
path: root/addons/metadata.generic.artists/lib/discogs.py
blob: 42fa1301d256cf5f3f58d285f85c0cc2277c3a04 (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
44
45
# -*- coding: utf-8 -*-
import difflib

def discogs_artistfind(data, artist):
    artists = []
    for item in data.get('results',[]):
        artistdata = {}
        artistdata['artist'] = item['title']
        # filter inaccurate results
        match = difflib.SequenceMatcher(None, artist.lower(), item['title'].lower()).ratio()
        score = round(match, 2)
        if score > 0.90:
            artistdata['thumb'] = item['thumb']
            artistdata['genre'] = ''
            artistdata['born'] = ''
            artistdata['dcid'] = item['id']
            # discogs does not provide relevance, use our own
            artistdata['relevance'] = str(score)
            artists.append(artistdata)
    return artists

def discogs_artistdetails(data):
    artistdata = {}
    artistdata['artist'] = data['name']
    artistdata['biography'] = data['profile']
    if 'images' in data:
        thumbs = []
        for item in data['images']:
            thumbdata = {}
            thumbdata['image'] = item['uri']
            thumbdata['preview'] = item['uri150']
            thumbdata['aspect'] = 'thumb'
            thumbs.append(thumbdata)
        artistdata['thumb'] = thumbs
    return artistdata

def discogs_artistalbums(data):
    albums = []
    for item in data['releases']:
        if item['role'] == 'Main':
            albumdata = {}
            albumdata['title'] = item['title']
            albumdata['year'] = str(item.get('year', ''))
            albums.append(albumdata)
    return albums