Do more regex matching, fix zero-indexed albums

lmao what
This commit is contained in:
Salt 2020-03-13 06:46:31 -05:00
parent 6dc1efaab6
commit f65e3441f0

View File

@ -323,18 +323,18 @@ class BadWitch:
'source': entries[i]['webpage_url'] 'source': entries[i]['webpage_url']
} }
# Song tags like these are per-song, so we have to detect them here # Song tags like these are per-song, so we have to detect them here
if 'artist' in item: if 'artist' in entries[i] and entries[i]['artist'] is not None:
if artist != '' and artist != entries[i]['artist']: if artist != '' and artist != entries[i]['artist']:
print('Detected multiple artists') print('Detected multiple artists')
artist = 'Various Artists' artist = 'Various Artists'
elif artist != entries[i]['artist']: elif artist != entries[i]['artist']:
print('Detected artist ' + entries[i]['artist']) print('Detected artist ' + entries[i]['artist'])
artist = entries[i]['artist'] artist = entries[i]['artist']
if 'album' in item and album == '': if 'album' in entries[i] and entries[i]['album'] is not None and album == '':
print('Detected album title ' + entries[i]['album']) print('Detected album title ' + entries[i]['album'])
album = entries[i]['album'] album = entries[i]['album']
# Sometimes this just comes back None # Sometimes this just comes back None
if 'release_date' in item and 'release_date' not in metadata and entries[i]['release_date'] is not None: if 'release_date' in entries[i] and entries[i]['release_date'] is not None and 'release_date' not in metadata:
print('Detected release date ' + entries[i]['release_date']) print('Detected release date ' + entries[i]['release_date'])
metadata['release_date'] = entries[i]['release_date'] metadata['release_date'] = entries[i]['release_date']
# If YouTube's song tags didn't work, just grab metadata from the playlist # If YouTube's song tags didn't work, just grab metadata from the playlist
@ -348,15 +348,19 @@ class BadWitch:
in_value = input('Metadata: ' + field + ' = ') in_value = input('Metadata: ' + field + ' = ')
if in_value is not '': metadata[field] = in_value if in_value is not '': metadata[field] = in_value
# Remove artist prefixes because that happens a lot # Remove artist prefixes because that happens a lot
artistregex = re.compile(r'^' + re.escape(artist) + r'[ ]*[-:;~]*[ ]*', re.IGNORECASE) for regex in [
for song, songcontent in playlist.items(): r'^' + re.escape(artist) + r'[ ]*[-:;~]*[ ]*', # Remove artist from beginning of songs
songcontent['title'] = artistregex.sub('', songcontent['title']) re.escape('(Audio)') + r'$' # Remove (Audio) from VEVO tracks AUGH
]:
cregex = re.compile(regex, re.IGNORECASE)
for song, songcontent in playlist.items():
songcontent['title'] = cregex.sub('', songcontent['title'])
# Build up an album # Build up an album
playlistalbum = {} playlistalbum = {}
playlistalbum['meta'] = metadata playlistalbum['meta'] = metadata
for song, songcontent in playlist.items(): for song, songcontent in playlist.items():
playlistalbum[songcontent['title']] = { playlistalbum[songcontent['title']] = {
'track': song, 'track': song + 1,
'artist': artist, 'artist': artist,
'source': songcontent['source'] 'source': songcontent['source']
} }