parent
349d7338b0
commit
34cdda74d6
|
@ -117,7 +117,16 @@ class SpotifyHelper:
|
||||||
def get_trackid_spotify(self, dz, track_id, fallbackSearch, spotifyTrack=None):
|
def get_trackid_spotify(self, dz, track_id, fallbackSearch, spotifyTrack=None):
|
||||||
if not self.spotifyEnabled:
|
if not self.spotifyEnabled:
|
||||||
raise spotifyFeaturesNotEnabled
|
raise spotifyFeaturesNotEnabled
|
||||||
|
singleTrack = False
|
||||||
if not spotifyTrack:
|
if not spotifyTrack:
|
||||||
|
if path.isfile(path.join(self.configFolder, 'spotifyCache.json')):
|
||||||
|
with open(path.join(self.configFolder, 'spotifyCache.json'), 'r') as spotifyCache:
|
||||||
|
cache = json.load(spotifyCache)
|
||||||
|
else:
|
||||||
|
cache = {'tracks': {}, 'albums': {}}
|
||||||
|
if str(track_id) in cache['tracks']:
|
||||||
|
return cache['tracks'][str(track_id)]
|
||||||
|
singleTrack = True
|
||||||
spotify_track = self.sp.track(track_id)
|
spotify_track = self.sp.track(track_id)
|
||||||
else:
|
else:
|
||||||
spotify_track = spotifyTrack
|
spotify_track = spotifyTrack
|
||||||
|
@ -132,11 +141,22 @@ class SpotifyHelper:
|
||||||
elif fallbackSearch:
|
elif fallbackSearch:
|
||||||
dz_track = dz.get_track_from_metadata(spotify_track['artists'][0]['name'], spotify_track['name'],
|
dz_track = dz.get_track_from_metadata(spotify_track['artists'][0]['name'], spotify_track['name'],
|
||||||
spotify_track['album']['name'])
|
spotify_track['album']['name'])
|
||||||
|
if singleTrack:
|
||||||
|
cache['tracks'][str(track_id)] = dz_track
|
||||||
|
with open(path.join(self.configFolder, 'spotifyCache.json'), 'w') as spotifyCache:
|
||||||
|
json.dump(cache, spotifyCache)
|
||||||
return dz_track
|
return dz_track
|
||||||
|
|
||||||
def get_albumid_spotify(self, dz, album_id):
|
def get_albumid_spotify(self, dz, album_id):
|
||||||
if not self.spotifyEnabled:
|
if not self.spotifyEnabled:
|
||||||
raise spotifyFeaturesNotEnabled
|
raise spotifyFeaturesNotEnabled
|
||||||
|
if path.isfile(path.join(self.configFolder, 'spotifyCache.json')):
|
||||||
|
with open(path.join(self.configFolder, 'spotifyCache.json'), 'r') as spotifyCache:
|
||||||
|
cache = json.load(spotifyCache)
|
||||||
|
else:
|
||||||
|
cache = {'tracks': {}, 'albums': {}}
|
||||||
|
if str(album_id) in cache['albums']:
|
||||||
|
return cache['albums'][str(album_id)]
|
||||||
spotify_album = self.sp.album(album_id)
|
spotify_album = self.sp.album(album_id)
|
||||||
dz_album = 0
|
dz_album = 0
|
||||||
if 'external_ids' in spotify_album and 'upc' in spotify_album['external_ids']:
|
if 'external_ids' in spotify_album and 'upc' in spotify_album['external_ids']:
|
||||||
|
@ -149,6 +169,9 @@ class SpotifyHelper:
|
||||||
dz_album = dz_album['id'] if 'id' in dz_album else 0
|
dz_album = dz_album['id'] if 'id' in dz_album else 0
|
||||||
except:
|
except:
|
||||||
dz_album = 0
|
dz_album = 0
|
||||||
|
cache['albums'][str(album_id)] = dz_album
|
||||||
|
with open(path.join(self.configFolder, 'spotifyCache.json'), 'w') as spotifyCache:
|
||||||
|
json.dump(cache, spotifyCache)
|
||||||
return dz_album
|
return dz_album
|
||||||
|
|
||||||
def convert_spotify_playlist(self, dz, playlist_id, settings):
|
def convert_spotify_playlist(self, dz, playlist_id, settings):
|
||||||
|
@ -180,8 +203,17 @@ class SpotifyHelper:
|
||||||
spotify_playlist['tracks'] = self.sp.next(spotify_playlist['tracks'])
|
spotify_playlist['tracks'] = self.sp.next(spotify_playlist['tracks'])
|
||||||
tracklist += spotify_playlist['tracks']['items']
|
tracklist += spotify_playlist['tracks']['items']
|
||||||
totalSize = len(tracklist)
|
totalSize = len(tracklist)
|
||||||
|
if path.isfile(path.join(self.configFolder, 'spotifyCache.json')):
|
||||||
|
with open(path.join(self.configFolder, 'spotifyCache.json'), 'r') as spotifyCache:
|
||||||
|
cache = json.load(spotifyCache)
|
||||||
|
else:
|
||||||
|
cache = {'tracks': {}, 'albums': {}}
|
||||||
for pos, track in enumerate(tracklist, start=1):
|
for pos, track in enumerate(tracklist, start=1):
|
||||||
trackID = self.get_trackid_spotify(dz, 0, settings['fallbackSearch'], track['track'])
|
if str(track['track']['id']) in cache['tracks']:
|
||||||
|
trackID = cache['tracks'][str(track['track']['id'])]
|
||||||
|
else:
|
||||||
|
trackID = self.get_trackid_spotify(dz, 0, settings['fallbackSearch'], track['track'])
|
||||||
|
cache['tracks'][str(track['track']['id'])] = trackID
|
||||||
if trackID == 0:
|
if trackID == 0:
|
||||||
deezerTrack = {
|
deezerTrack = {
|
||||||
'SNG_ID': 0,
|
'SNG_ID': 0,
|
||||||
|
@ -202,6 +234,8 @@ class SpotifyHelper:
|
||||||
deezerTrack['SIZE'] = totalSize
|
deezerTrack['SIZE'] = totalSize
|
||||||
deezerTrack['FILENAME_TEMPLATE'] = settings['playlistTracknameTemplate']
|
deezerTrack['FILENAME_TEMPLATE'] = settings['playlistTracknameTemplate']
|
||||||
result['collection'].append(deezerTrack)
|
result['collection'].append(deezerTrack)
|
||||||
|
with open(path.join(self.configFolder, 'spotifyCache.json'), 'w') as spotifyCache:
|
||||||
|
json.dump(cache, spotifyCache)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def get_user_playlists(self, user):
|
def get_user_playlists(self, user):
|
||||||
|
|
Loading…
Reference in New Issue