Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)