Print -> Logging, fixes #84 (#461)

This commit is contained in:
Dj authored and GitHub committed 2020-04-03 23:03:09 +01:00
1 parent ccfda079c8
commit b01adba826
15 files changed
+297 -282

No files matched your search

+28 -19
View File
@@ -1,27 +1,36 @@
# Add tracks to 'Your Collection' of saved tracks
import pprint
import sys
import argparse
import logging
import os
import spotipy
import spotipy.util as util
logger = logging.getLogger('examples.add_a_saved_album')
logging.basicConfig(level='DEBUG')
scope = 'user-library-modify'
if len(sys.argv) > 2:
username = sys.argv[1]
aids = sys.argv[2:]
else:
print("Usage: %s username album-id ..." % (sys.argv[0],))
sys.exit()
token = util.prompt_for_user_token(username, scope)
def get_args():
parser = argparse.ArgumentParser(description='Creates a playlist for user')
parser.add_argument('-u', '--username', required=False,
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
help='Username id. Defaults to environment var')
parser.add_argument('-a', '--aids', action='append',
required=True, help='Album ids')
return parser.parse_args()
if token:
sp = spotipy.Spotify(auth=token)
sp.trace = False
results = sp.current_user_saved_albums_add(albums=aids)
pprint.pprint(results)
else:
print("Can't get token for", username)
def main():
args = get_args()
token = util.prompt_for_user_token(args.username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.current_user_saved_albums_add(albums=args.aids)
else:
logger.error("Can't get token for %s", args.username)
if __name__ == '__main__':
main()
+29 -19
View File
@@ -1,27 +1,37 @@
# Add tracks to 'Your Collection' of saved tracks
import pprint
import sys
import argparse
import logging
import os
import spotipy
import spotipy.util as util
scope = 'user-library-modify'
if len(sys.argv) > 2:
username = sys.argv[1]
tids = sys.argv[2:]
else:
print("Usage: %s username track-id ..." % (sys.argv[0],))
sys.exit()
logger = logging.getLogger('examples.add_a_saved_track')
logging.basicConfig(level='DEBUG')
token = util.prompt_for_user_token(username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.trace = False
results = sp.current_user_saved_tracks_add(tracks=tids)
pprint.pprint(results)
else:
print("Can't get token for", username)
def get_args():
parser = argparse.ArgumentParser(description='Add tracks to Your '
'Collection of saved tracks')
parser.add_argument('-u', '--username', required=False,
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
help='Username id. Defaults to environment var')
parser.add_argument('-t', '--tids', action='append',
required=True, help='Track ids')
return parser.parse_args()
def main():
args = get_args()
token = util.prompt_for_user_token(args.username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.current_user_saved_tracks_add(tracks=args.tids)
else:
logger.error("Can't get token for %s", args.username)
if __name__ == '__main__':
main()
+31 -20
View File
@@ -1,26 +1,37 @@
# Adds tracks to a playlist
import sys
import argparse
import logging
import os
import spotipy
import spotipy.util as util
if len(sys.argv) > 3:
username = sys.argv[1]
playlist_id = sys.argv[2]
track_ids = sys.argv[3:]
else:
print("Usage: %s username playlist_id track_id ..." % (sys.argv[0],))
sys.exit()
logger = logging.getLogger('examples.add_tracks_to_playlist')
logging.basicConfig(level='DEBUG')
scope = 'playlist-modify-public'
token = util.prompt_for_user_token(username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.trace = False
results = sp.user_playlist_add_tracks(username, playlist_id, track_ids)
print(results)
else:
print("Can't get token for", username)
def get_args():
parser = argparse.ArgumentParser(description='Adds track to user playlist')
parser.add_argument('-u', '--username', required=False,
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
help='Username id. Defaults to environment var')
parser.add_argument('-t', '--tids', action='append',
required=True, help='Track ids')
parser.add_argument('-p', '--playlist', required=True,
help='Playlist to add track to')
return parser.parse_args()
def main():
args = get_args()
token = util.prompt_for_user_token(args.username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.user_playlist_add_tracks(args.username, args.playlist, args.tids)
else:
logger.error("Can't get token for %s", args.username)
if __name__ == '__main__':
main()
+25 -15
View File
@@ -1,9 +1,20 @@
import argparse
import logging
from spotipy.oauth2 import SpotifyClientCredentials
import sys
import spotipy
''' shows the albums and tracks for a given artist.
'''
logger = logging.getLogger('examples.artist_albums')
logging.basicConfig(level='INFO')
sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials())
def get_args():
parser = argparse.ArgumentParser(description='Gets albums from artist')
parser.add_argument('-a', '--artist', required=True,
help='Name of Artist')
return parser.parse_args()
def get_artist(name):
@@ -27,19 +38,18 @@ def show_artist_albums(artist):
for album in albums:
name = album['name']
if name not in seen:
print((' ' + name))
logger.info('ALBUM: %s', name)
seen.add(name)
if __name__ == '__main__':
sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials())
if len(sys.argv) < 2:
print(('Usage: {0} artist name'.format(sys.argv[0])))
def main():
args = get_args()
artist = get_artist(args.artist)
if artist:
show_artist_albums(artist)
else:
name = ' '.join(sys.argv[1:])
artist = get_artist(name)
if artist:
show_artist_albums(artist)
else:
print("Can't find that artist")
logger.error("Can't find artist: %s", artist)
if __name__ == '__main__':
main()
+28 -22
View File
@@ -1,9 +1,19 @@
import argparse
import logging
from spotipy.oauth2 import SpotifyClientCredentials
import sys
import spotipy
''' shows the albums and tracks for a given artist.
'''
logger = logging.getLogger('examples.artist_discography')
logging.basicConfig(level='INFO')
def get_args():
parser = argparse.ArgumentParser(description='Shows albums and tracks for '
'given artist')
parser.add_argument('-a', '--artist', required=True,
help='Name of Artist')
return parser.parse_args()
def get_artist(name):
@@ -22,45 +32,41 @@ def show_album_tracks(album):
while results['next']:
results = sp.next(results)
tracks.extend(results['items'])
for track in tracks:
print(' ', track['name'])
print()
print(track)
for i, track in enumerate(tracks):
logger.info('%s. %s', i+1, track['name'])
def show_artist_albums(id):
def show_artist_albums(artist):
albums = []
results = sp.artist_albums(artist['id'], album_type='album')
albums.extend(results['items'])
while results['next']:
results = sp.next(results)
albums.extend(results['items'])
print('Total albums:', len(albums))
logger.info('Total albums: %s', len(albums))
unique = set() # skip duplicate albums
for album in albums:
name = album['name'].lower()
if name not in unique:
print(name)
logger.info('ALBUM: %s', name)
unique.add(name)
show_album_tracks(album)
def show_artist(artist):
print('====', artist['name'], '====')
print('Popularity: ', artist['popularity'])
logger.info('====%s====', artist['name'])
logger.info('Popularity: %s', artist['popularity'])
if len(artist['genres']) > 0:
print('Genres: ', ','.join(artist['genres']))
logger.info('Genres: %s', ','.join(artist['genres']))
def main():
args = get_args()
artist = get_artist(args.artist)
show_artist(artist)
show_artist_albums(artist)
if __name__ == '__main__':
client_credentials_manager = SpotifyClientCredentials()
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
sp.trace = False
if len(sys.argv) < 2:
print(('Usage: {0} artist name'.format(sys.argv[0])))
else:
name = ' '.join(sys.argv[1:])
artist = get_artist(name)
show_artist(artist)
show_artist_albums(artist)
main()
+27 -16
View File
@@ -1,13 +1,22 @@
import sys
import argparse
import logging
import spotipy
''' shows recommendations for the given artist
'''
from spotipy.oauth2 import SpotifyClientCredentials
logger = logging.getLogger('examples.artist_recommendations')
logging.basicConfig(level='INFO')
client_credentials_manager = SpotifyClientCredentials()
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
sp.trace = False
def get_args():
parser = argparse.ArgumentParser(description='Recommendations for the '
'given artist')
parser.add_argument('-a', '--artist', required=True, help='Name of Artist')
return parser.parse_args()
def get_artist(name):
@@ -22,16 +31,18 @@ def get_artist(name):
def show_recommendations_for_artist(artist):
results = sp.recommendations(seed_artists=[artist['id']])
for track in results['tracks']:
print(track['name'], '-', track['artists'][0]['name'])
logger.info('Recommendation: %s - %s', track['name'],
track['artists'][0]['name'])
def main():
args = get_args()
artist = get_artist(args.artist)
if artist:
show_recommendations_for_artist(artist)
else:
logger.error("Can't find that artist", args.artist)
if __name__ == '__main__':
if len(sys.argv) < 2:
print(('Usage: {0} artist name'.format(sys.argv[0])))
else:
name = ' '.join(sys.argv[1:])
artist = get_artist(name)
if artist:
show_recommendations_for_artist(artist)
else:
print("Can't find that artist", name)
main()
+47 -35
View File
@@ -1,42 +1,54 @@
# Modify the details of a playlist (name, public, collaborative)
import sys
import argparse
import logging
import os
import spotipy
import spotipy.util as util
if len(sys.argv) > 3:
username = sys.argv[1]
playlist_id = sys.argv[2]
name = sys.argv[3]
public = None
if len(sys.argv) > 4:
public = sys.argv[4].lower() == 'true'
collaborative = None
if len(sys.argv) > 5:
collaborative = sys.argv[5].lower() == 'true'
description = None
if len(sys.argv) > 6:
description = sys.argv[6]
else:
print("Usage: %s username playlist_id name [public collaborative "
"description]" % (sys.argv[0]))
sys.exit()
logger = logging.getLogger('examples.change_playlist_details')
logging.basicConfig(level='DEBUG')
scope = 'playlist-modify-public playlist-modify-private'
token = util.prompt_for_user_token(username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.trace = False
results = sp.user_playlist_change_details(
username, playlist_id, name=name, public=public,
collaborative=collaborative, description=description)
print(results)
else:
print("Can't get token for"), username
def get_args():
parser = argparse.ArgumentParser(description='Modify details of playlist')
parser.add_argument('-u', '--username', required=False,
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
help='Username id. Defaults to environment var')
parser.add_argument('-p', '--playlist', required=True,
help='Playlist id to alter details')
parser.add_argument('-n', '--name', required=False,
help='Name of playlist')
parser.add_argument('--public', action='store_true', required=False,
help='Include param if playlist is public')
parser.add_argument('--private', action='store_false', required=False,
default=None,
help='Include param to make playlist is private')
parser.add_argument('-c', '--collaborative', action='store_true',
required=False, default=None,
help='Include param if playlist is collaborative')
parser.add_argument('-i', '--independent', action='store_false',
required=False, default=None,
help='Include param to make playlist non collaborative')
parser.add_argument('-d', '--description', default=None, required=False,
help='Description of playlist')
return parser.parse_args()
def main():
args = get_args()
token = util.prompt_for_user_token(args.username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.user_playlist_change_details(
args.username, args.playlist, name=args.name,
public=args.public or args.private,
collaborative=args.collaborative or args.independent,
description=args.description)
else:
logger.error("Can't get token for %s", args.username)
if __name__ == '__main__':
main()
+31 -22
View File
@@ -1,30 +1,39 @@
# Creates a playlist for a user
import pprint
import sys
import argparse
import logging
import os
import spotipy
import spotipy.util as util
logger = logging.getLogger('examples.create_playlist')
logging.basicConfig(level='DEBUG')
if len(sys.argv) > 2:
username = sys.argv[1]
playlist_name = sys.argv[2]
playlist_description = sys.argv[3]
else:
print(
"Usage: %s username playlist-name playlist-description" %
(sys.argv[0],))
sys.exit()
scope = "playlist-modify-public"
token = util.prompt_for_user_token(username, scope)
def get_args():
parser = argparse.ArgumentParser(description='Creates a playlist for user')
parser.add_argument('-u', '--username', required=False,
default=os.environ.get('SPOTIPY_CLIENT_USERNAME'),
help='Username id. Defaults to environment var')
parser.add_argument('-p', '--playlist', required=True,
help='Name of Playlist')
parser.add_argument('-d', '--description', required=False, default='',
help='Description of Playlist')
return parser.parse_args()
if token:
sp = spotipy.Spotify(auth=token)
sp.trace = False
playlists = sp.user_playlist_create(username, playlist_name,
description=playlist_description)
pprint.pprint(playlists)
else:
print("Can't get token for", username)
def main():
args = get_args()
scope = "playlist-modify-public"
token = util.prompt_for_user_token(args.username, scope)
if token:
logger.info('USERNAME: %s, PLAYLIST: %s', args.username, args.playlist)
sp = spotipy.Spotify(auth=token)
sp.user_playlist_create(args.username, args.playlist)
else:
logger.error("Can't get token for: %s", args.username)
if __name__ == '__main__':
main()
-19
View File
@@ -1,19 +0,0 @@
# shows acoustic features for tracks for the given artist
from __future__ import print_function # (at top of module)
from spotipy.oauth2 import SpotifyClientCredentials
import spotipy
client_credentials_manager = SpotifyClientCredentials()
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
sp.trace = True
try:
print('bad call 0')
bad_artist_call = sp.artist('spotify:artist:12341234')
except spotipy.client.SpotifyException:
print('bad call 0 exception')
print('bad call 1')
bad_artist_call = sp.artist('spotify:artist:12341234')
print('bad artist', bad_artist_call)
-14
View File
@@ -1,14 +0,0 @@
# shows artist info for a URN or URL
import spotipy
import sys
import pprint
if len(sys.argv) > 1:
search_str = sys.argv[1]
else:
search_str = 'Radiohead'
sp = spotipy.Spotify(requests_timeout=.1)
result = sp.search(search_str)
pprint.pprint(result)