def migrate_playlist(user_key, playlist): print u'\nMigrating playlist: %s' % playlist['name'] name = playlist['name'] if playlist['ownerKey'] != user_key: name += u' (by %s)' % playlist['owner'] description = u'Imported from Rdio playlist %s\n' % playlist['shortUrl'] play_track_ids = [] failed = [] tracks = rdio.playlist_tracks(playlist) if tracks is None: print u'Can\'t get tracks for playlist "%s" - it might be private.' % playlist[ 'name'] return with Report('playlist-%s.html' % playlist['key'], name) as report: for match in match_tracks(tracks, len(tracks), pm): report.add_match(match) if match.matched(): play_track_ids.append(match.play.id) else: failed.append(match) if failed: description += 'Failed to import: ' for match in failed: description += u'%s (%s / %s / %s)' % ( match.rdio.url, match.rdio.name, match.rdio.artist, match.rdio.album) playlist_id = pm.create_playlist(name, description, play_track_ids) print u'Imported to %s' % pm.playlist_url(playlist_id)
def migrate_playlist(user_key, playlist): print u'\nMigrating playlist: %s' % playlist['name'] name = playlist['name'] if playlist['ownerKey'] != user_key: name += u' (by %s)' % playlist['owner'] description = u'Imported from Rdio playlist %s\n' % playlist['shortUrl'] play_track_ids = [] failed = [] tracks = rdio.playlist_tracks(playlist) if tracks is None: print u'Can\'t get tracks for playlist "%s" - it might be private.' % playlist['name'] return with Report('playlist-%s.html' % playlist['key'], name) as report: for match in match_tracks(tracks, pm): report.add_match(match) if match.matched(): play_track_ids.append(match.play.id) else: failed.append(match) if failed: description += 'Failed to import: ' for match in failed: description += u'%s (%s / %s / %s)' % ( match.rdio.url, match.rdio.name, match.rdio.artist, match.rdio.album) playlist_id = pm.create_playlist(name, description, play_track_ids) print u'Imported to %s' % pm.playlist_url(playlist_id)
def migrate_favorites(rdio_username): user = rdio.call('findUser', vanityName=rdio_username, extras='trackCount') print 'Migrating %(trackCount)d favorites for %(firstName)s %(lastName)s' % user rdio_tracks = rdio.favorite_tracks(user['key']) with Report('favorites.html', "%(firstName)s %(lastName)s's Favorites" % user) as report: matched_tracks = match_tracks(rdio_tracks, user['trackCount'], pm) for match in matched_tracks: report.add_match(match) if match.matched(): pm.add_track(match.play.id)
def migrate_favorites(user): print 'Migrating favorites for %(firstName)s %(lastName)s' % user print 'Scanning Rdio favorite...' rdio_tracks = list(rdio.favorite_tracks(user['key'])) print 'Migrating %d favorites' % len(rdio_tracks) with Report('favorites.html', "%(firstName)s %(lastName)s's Favorites" % user) as report: matched_tracks = match_tracks(rdio_tracks, pm) for match in matched_tracks: report.add_match(match) if match.matched(): pm.add_track(match.play.id)