def match_args(): if const.args.song: for track in const.args.song: track_dl = downloader.Downloader(raw_song=track) track_dl.download_single() elif const.args.list: if const.args.write_m3u: youtube_tools.generate_m3u(track_file=const.args.list) else: list_dl = downloader.ListDownloader( tracks_file=const.args.list, skip_file=const.args.skip, write_successful_file=const.args.write_successful, ) list_dl.download_list() elif const.args.clear_playlist: spotify_tools.clear_playlist(const.args.clear_playlist) elif const.args.playlist: spotify_tools.write_playlist(playlist_url=const.args.playlist, text_file=const.args.write_to) elif const.args.album: spotify_tools.write_album(album_url=const.args.album, text_file=const.args.write_to) elif const.args.all_albums: spotify_tools.write_all_albums_from_artist( artist_url=const.args.all_albums, text_file=const.args.write_to) elif const.args.username: spotify_tools.write_user_playlist(username=const.args.username, text_file=const.args.write_to)
def test_user_playlists(tmpdir, monkeypatch): expect_tracks = 14 text_file = os.path.join(str(tmpdir), "test_us.txt") monkeypatch.setattr("builtins.input", lambda x: 1) spotify_tools.write_user_playlist("alex", text_file) with open(text_file, "r") as f: tracks = len(f.readlines()) assert tracks == expect_tracks
def test_user_playlists(tmpdir, monkeypatch): expect_tracks = 14 text_file = os.path.join(str(tmpdir), 'test_us.txt') monkeypatch.setattr('builtins.input', lambda x: 1) spotify_tools.write_user_playlist('alex', text_file) with open(text_file, 'r') as tin: tracks = len(tin.readlines()) assert tracks == expect_tracks
def match_args(): # Todo major changing here, I shall probably change everything, # I add operation variable, for now it is a patch operation = '' text_file = '' tracks_url = [] if const.args.song: for track in const.args.song: track_dl = EnhancedDownloader(raw_song=track) track_dl.download_single() operation = 'list' elif const.args.playlist: tracks_url = spotify_tools.write_playlist( playlist_url=const.args.playlist, text_file=const.args.write_to) playlist = spotify_tools.fetch_playlist(const.args.playlist) text_file = u"{0}.txt".format(slugify(playlist["name"], ok="-_()[]{}")) operation = 'playlist' elif const.args.album: tracks_url = spotify_tools.write_album(album_url=const.args.album, text_file=const.args.write_to) album = spotify_tools.fetch_album(const.args.album) text_file = u"{0}.txt".format(slugify(album["name"], ok="-_()[]{}")) operation = 'album' elif const.args.all_albums: spotify_tools.write_all_albums_from_artist( artist_url=const.args.all_albums, text_file=const.args.write_to) albums = spotify_tools.fetch_albums_from_artist(const.args.all_albums, album_type=None) text_file = albums[0]["artists"][0]["name"] + ".txt" operation = 'all_album' # Todo: the user playlist require user input in cmd. I will exclude it for now. elif const.args.username: spotify_tools.write_user_playlist(username=const.args.username, text_file=const.args.write_to) # playlist = spotify_tools.fetch_playlist(const.args.playlist) # text_file = u"{0}.txt".format(slugify(playlist["name"], ok="-_()[]{}")) # operation = 'username' # return operation, text_file, tracks_url
def main(): const.args = handle.get_arguments() if const.args.version: print("spotdl {version}".format(version=__version__)) sys.exit() internals.filter_path(const.args.folder) youtube_tools.set_api_key() logzero.setup_default_logger(formatter=const._formatter, level=const.args.log_level) log.debug("Python version: {}".format(sys.version)) log.debug("Platform: {}".format(platform.platform())) log.debug(pprint.pformat(const.args.__dict__)) try: if const.args.song: download_single(raw_song=const.args.song) elif const.args.list: if const.args.write_m3u: youtube_tools.generate_m3u(track_file=const.args.list) else: download_list( tracks_file=const.args.list, skip_file=const.args.skip, write_successful_file=const.args.write_successful, ) elif const.args.playlist: spotify_tools.write_playlist(playlist_url=const.args.playlist) elif const.args.album: spotify_tools.write_album(album_url=const.args.album) elif const.args.all_albums: spotify_tools.write_all_albums_from_artist( artist_url=const.args.all_albums) elif const.args.username: spotify_tools.write_user_playlist(username=const.args.username) # actually we don't necessarily need this, but yeah... # explicit is better than implicit! sys.exit(0) except KeyboardInterrupt as e: log.exception(e) sys.exit(3)
def main(): const.args = handle.get_arguments() if const.args.version: print('spotdl {version}'.format(version=__version__)) sys.exit() internals.filter_path(const.args.folder) youtube_tools.set_api_key() const.log = const.logzero.setup_logger(formatter=const._formatter, level=const.args.log_level) global log log = const.log log.debug('Python version: {}'.format(sys.version)) log.debug('Platform: {}'.format(platform.platform())) log.debug(pprint.pformat(const.args.__dict__)) try: if const.args.song: download_single(raw_song=const.args.song) elif const.args.list: download_list(text_file=const.args.list) elif const.args.playlist: spotify_tools.write_playlist(playlist_url=const.args.playlist) elif const.args.album: spotify_tools.write_album(album_url=const.args.album) elif const.args.username: spotify_tools.write_user_playlist(username=const.args.username) # actually we don't necessarily need this, but yeah... # explicit is better than implicit! sys.exit(0) except KeyboardInterrupt as e: log.exception(e) sys.exit(3)