Added download_from_urls helper function

This commit is contained in:
yiannisha 2021-11-11 18:23:53 +02:00
parent feaed1ddca
commit 485d5ba826

View File

@ -37,55 +37,13 @@ def client(args) -> None:
with open(filename, 'r', encoding='utf-8') as file: with open(filename, 'r', encoding='utf-8') as file:
urls.extend([line.strip() for line in file.readlines()]) urls.extend([line.strip() for line in file.readlines()])
for spotify_url in urls: download_from_urls(urls)
track_id, album_id, playlist_id, episode_id, show_id, artist_id = regex_input_for_urls(
spotify_url)
if track_id is not None:
download_track(track_id)
elif artist_id is not None:
download_artist_albums(artist_id)
elif album_id is not None:
download_album(album_id)
elif playlist_id is not None:
playlist_songs = get_playlist_songs(playlist_id)
name, _ = get_playlist_info(playlist_id)
for song in playlist_songs:
download_track(song[TRACK][ID],
fix_filename(name) + '/')
print('\n')
elif episode_id is not None:
download_episode(episode_id)
elif show_id is not None:
for episode in get_show_episodes(show_id):
download_episode(episode)
else: else:
print(f'File {filename} not found.\n') print(f'File {filename} not found.\n')
if args.urls: if args.urls:
for spotify_url in args.urls: download_from_urls(args.urls)
track_id, album_id, playlist_id, episode_id, show_id, artist_id = regex_input_for_urls(
spotify_url)
if track_id is not None:
download_track(track_id)
elif artist_id is not None:
download_artist_albums(artist_id)
elif album_id is not None:
download_album(album_id)
elif playlist_id is not None:
playlist_songs = get_playlist_songs(playlist_id)
name, _ = get_playlist_info(playlist_id)
for song in playlist_songs:
download_track(song[TRACK][ID],
fix_filename(name) + '/')
print('\n')
elif episode_id is not None:
download_episode(episode_id)
elif show_id is not None:
for episode in get_show_episodes(show_id):
download_episode(episode)
if args.playlist: if args.playlist:
download_from_user_playlist() download_from_user_playlist()
@ -104,28 +62,43 @@ def client(args) -> None:
while len(search_text) == 0: while len(search_text) == 0:
search_text = input('Enter search or URL: ') search_text = input('Enter search or URL: ')
if not download_from_urls([search_text]):
search(search_text)
def download_from_urls(urls: list[str]) -> bool:
""" Downloads from a list of spotify urls """
download = False
for spotify_url in urls:
track_id, album_id, playlist_id, episode_id, show_id, artist_id = regex_input_for_urls( track_id, album_id, playlist_id, episode_id, show_id, artist_id = regex_input_for_urls(
search_text) spotify_url)
if track_id is not None: if track_id is not None:
download = True
download_track(track_id) download_track(track_id)
elif artist_id is not None: elif artist_id is not None:
download = True
download_artist_albums(artist_id) download_artist_albums(artist_id)
elif album_id is not None: elif album_id is not None:
download = True
download_album(album_id) download_album(album_id)
elif playlist_id is not None: elif playlist_id is not None:
download = True
playlist_songs = get_playlist_songs(playlist_id) playlist_songs = get_playlist_songs(playlist_id)
name, _ = get_playlist_info(playlist_id) name, _ = get_playlist_info(playlist_id)
for song in playlist_songs: for song in playlist_songs:
download_track(song[TRACK][ID], fix_filename(name) + '/') download_track(song[TRACK][ID],
fix_filename(name) + '/')
print('\n') print('\n')
elif episode_id is not None: elif episode_id is not None:
download = True
download_episode(episode_id) download_episode(episode_id)
elif show_id is not None: elif show_id is not None:
download = True
for episode in get_show_episodes(show_id): for episode in get_show_episodes(show_id):
download_episode(episode) download_episode(episode)
else:
search(search_text) return download
def search(search_term): def search(search_term):