def getSpURIsForLocal(local_uri): track = local.parseSPurl(local_uri) name = track[2].lower() artist = track[0].lower() r = requests.get(artist_search_uri + artist) while (r.text == ''): time.sleep(0.1) x = json.loads(r.text) found_in_album = [] for a in x['artists']: # try: if artist == a['name'].lower(): uri = a['href'] artist_info = getTracksForArtist(uri) albums = artist_info['albums'] for a in albums: found = 0 for t in a['tracks']: if (found == 0): if (name == t['name'].lower()): found_in_album.append(a['href']) found = 1 artist_info['found_in_album'] = found_in_album artist_info['source_name'] = name artist_info['source_uri'] = local_uri return artist_info # except: # pass return {}
def getSpTrackForLocal(local_uri): track = local.parseSPurl(local_uri) name = track[2] artist = track[0] r = requests.get(artist_search_uri + artist) while (r.text == ''): time.sleep(0.1) x = json.loads(r.text) spTrack = {} spTrack['source_uri'] = local_uri spTrack['artist'] = artist spTrack['name'] = name for a in x['artists']: if artist.lower() == a['name'].lower(): uri = a['href'] tracks = getTracksForArtist(uri) albums = tracks['albums'] for a in albums: found = 0 for t in a['tracks']: if (found == 0): if (name.lower() == t['name'].lower()): spTrack['sp_uri'] = t['href'] found = 1 return spTrack return {}
def migrate(track_uris): if type(track_uris) is not list: track_uris = [track_uris] tracks = [] for t in track_uris: if (t.find('spotify:local:') != -1): try: print t track_info = local.parseSPurl(t) track = { 'artist': track_info[0], 'title': track_info[2], 'local_uri': t } r = requests.get(track_search_uri + urllib.quote(track['artist']) + ' ' + urllib.quote(track['title'])) wait = 0.0 timeout = 0 while (r.text == '' and wait < 3.0): time.sleep(0.1) wait += 0.1 if wait == 3.0: timeout = 1 if timeout == 0: x = json.loads(r.text) found = 0 for tr in x['tracks']: if found == 0: name = tr['name'].lower() artist = tr['artists'][0]['name'].lower() if (name == track['title'].lower() and artist == track['artist'].lower()): track['spotify_uri'] = tr['href'] found = 1 print 'FOUND: ',track['title'],'by',track['artist'] if found == 0: print 'Did not find: ',track['title'],'by',track['artist'] tracks.append(track) else: print 'Timed out: ',track['title'],'by',track['artist'] except ValueError: print 'Error: ',t print 'Finished - RETURNING' return tracks