コード例 #1
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--size",
                        type=int,
                        help="Size of the generated playlist")
    parser.add_argument("--name",
                        type=str,
                        help="Name of the generated playlist")
    parser.add_argument("--user",
                        type=str,
                        help="User for whom to create the playlist")
    parser.add_argument("--seed", type=str, help="ID of the seed track")
    args = parser.parse_args()

    logging.basicConfig(level=logging.INFO, stream=sys.stdout)

    client = SpotifyClient(args.user)
    seed_track = client.get_track(args.seed)
    factory = ArtistChainFactory(client,
                                 seed_track,
                                 DriftingWeight(seed_track),
                                 unique_artists=False)

    # If a playlist of this name exists, use it, otherwise create one.
    for playlist_ in client.get_playlists():
        if playlist_.name == args.name:
            playlist = playlist_
            break
    else:
        playlist = Playlist(name=args.name)

    for _, track in zip(range(args.size), factory):
        playlist.append(track)

    LOG.info("Finished generating playlist %s", str(playlist))

    client.store_playlist(playlist)