Added albumVariousArtists option

When set to false, albums with "Various Artists" as the album artist 
will leave the field blank. Some music players need this config to add 
the album to the internal "Various Artists" category.
This commit is contained in:
RemixDev 2020-06-10 22:07:34 +02:00
parent 56bd8fac54
commit 5cab1b5fbe
2 changed files with 13 additions and 9 deletions

View File

@ -35,6 +35,7 @@
"PNGcovers": false, "PNGcovers": false,
"jpegImageQuality": 80, "jpegImageQuality": 80,
"dateFormat": "Y-M-D", "dateFormat": "Y-M-D",
"albumVariousArtists": true,
"removeAlbumVersion": false, "removeAlbumVersion": false,
"removeDuplicateArtists": false, "removeDuplicateArtists": false,
"featuredToTitle": "0", "featuredToTitle": "0",

View File

@ -168,7 +168,7 @@ def parseEssentialTrackData(track, trackAPI):
return track return track
def getTrackData(dz, trackAPI_gw, trackAPI=None, albumAPI_gw=None, albumAPI=None, removeDuplicates=False): def getTrackData(dz, trackAPI_gw, settings, trackAPI=None, albumAPI_gw=None, albumAPI=None):
if not 'MD5_ORIGIN' in trackAPI_gw: if not 'MD5_ORIGIN' in trackAPI_gw:
trackAPI_gw['MD5_ORIGIN'] = dz.get_track_md5(trackAPI_gw['SNG_ID']) trackAPI_gw['MD5_ORIGIN'] = dz.get_track_md5(trackAPI_gw['SNG_ID'])
@ -266,12 +266,12 @@ def getTrackData(dz, trackAPI_gw, trackAPI=None, albumAPI_gw=None, albumAPI=None
track['album']['artist'] = {} track['album']['artist'] = {}
track['album']['artists'] = [] track['album']['artists'] = []
for artist in albumAPI['contributors']: for artist in albumAPI['contributors']:
if artist['id'] != 5080: if artist['id'] != 5080 or artist['id'] == 5080 and settings['albumVariousArtists']:
track['album']['artists'].append(artist['name']) track['album']['artists'].append(artist['name'])
if not artist['role'] in track['album']['artist']: if not artist['role'] in track['album']['artist']:
track['album']['artist'][artist['role']] = [] track['album']['artist'][artist['role']] = []
track['album']['artist'][artist['role']].append(artist['name']) track['album']['artist'][artist['role']].append(artist['name'])
if removeDuplicates: if settings['removeDuplicateArtists']:
track['album']['artists'] = uniqueArray(track['album']['artists']) track['album']['artists'] = uniqueArray(track['album']['artists'])
for role in track['album']['artist'].keys(): for role in track['album']['artist'].keys():
track['album']['artist'][role] = uniqueArray(track['album']['artist'][role]) track['album']['artist'][role] = uniqueArray(track['album']['artist'][role])
@ -345,8 +345,7 @@ def getTrackData(dz, trackAPI_gw, trackAPI=None, albumAPI_gw=None, albumAPI=None
if not artist['role'] in track['artist']: if not artist['role'] in track['artist']:
track['artist'][artist['role']] = [] track['artist'][artist['role']] = []
track['artist'][artist['role']].append(artist['name']) track['artist'][artist['role']].append(artist['name'])
if settings['removeDuplicateArtists']:
if removeDuplicates:
track['artists'] = uniqueArray(track['artists']) track['artists'] = uniqueArray(track['artists'])
for role in track['artist'].keys(): for role in track['artist'].keys():
track['artist'][role] = uniqueArray(track['artist'][role]) track['artist'][role] = uniqueArray(track['artist'][role])
@ -449,9 +448,9 @@ def downloadTrackObj(dz, trackAPI, settings, bitrate, queueItem, extraTrack=None
else: else:
track = getTrackData(dz, track = getTrackData(dz,
trackAPI_gw=trackAPI, trackAPI_gw=trackAPI,
settings=settings,
trackAPI=trackAPI['_EXTRA_TRACK'] if '_EXTRA_TRACK' in trackAPI else None, trackAPI=trackAPI['_EXTRA_TRACK'] if '_EXTRA_TRACK' in trackAPI else None,
albumAPI=trackAPI['_EXTRA_ALBUM'] if '_EXTRA_ALBUM' in trackAPI else None, albumAPI=trackAPI['_EXTRA_ALBUM'] if '_EXTRA_ALBUM' in trackAPI else None
removeDuplicates=settings['removeDuplicateArtists']
) )
if 'cancel' in queueItem: if 'cancel' in queueItem:
result['cancel'] = True result['cancel'] = True
@ -599,8 +598,12 @@ def downloadTrackObj(dz, trackAPI, settings, bitrate, queueItem, extraTrack=None
'pic': trackAPI["_EXTRA_PLAYLIST"]['various_artist']['picture_small'][ 'pic': trackAPI["_EXTRA_PLAYLIST"]['various_artist']['picture_small'][
trackAPI["_EXTRA_PLAYLIST"]['various_artist']['picture_small'].find('artist/') + 7:-24] trackAPI["_EXTRA_PLAYLIST"]['various_artist']['picture_small'].find('artist/') + 7:-24]
} }
track['album']['artist'] = {"Main": [trackAPI["_EXTRA_PLAYLIST"]['various_artist']['name'], ]} if settings['albumVariousArtists']:
track['album']['artists'] = [trackAPI["_EXTRA_PLAYLIST"]['various_artist']['name'], ] track['album']['artist'] = {"Main": [trackAPI["_EXTRA_PLAYLIST"]['various_artist']['name'], ]}
track['album']['artists'] = [trackAPI["_EXTRA_PLAYLIST"]['various_artist']['name'], ]
else:
track['album']['artist'] = {"Main": []}
track['album']['artists'] = []
track['trackNumber'] = trackAPI["POSITION"] track['trackNumber'] = trackAPI["POSITION"]
track['album']['trackTotal'] = trackAPI["_EXTRA_PLAYLIST"]['nb_tracks'] track['album']['trackTotal'] = trackAPI["_EXTRA_PLAYLIST"]['nb_tracks']
track['album']['recordType'] = "Compilation" track['album']['recordType'] = "Compilation"