def similar_songs(): print("Enter track name: ") track = input() print("Enter artist name: ") artist = input() info = api.get_response(api.track_client.get_similar(track, artist)) if is_valid(info): line_break() print(f"Tracks similar to \"{track}\" by {artist}: ") i = 1 tracks = [] matches = [] for track in info['similartracks']['track']: print(f"#{i}: ") print("Track:", track['name']) print("Artist:", track['artist']['name']) print("Playcount:", f"{int(track['playcount']):,}") print("Match:", f"{float(track['match']):.0%}") tracks.append(f"{track['name']}\n({track['artist']['name']})") matches.append(float(track['match']) * 100) if i != 10: print() i += 1 create_graph("Track", "Match %", tracks, matches) else: similar_songs()
def description(): print("Enter artist name: ") artist = input() info = api.get_response(api.artist_client.get_info(artist)) if is_valid(info): line_break() print(f"Description for {artist}: ") print(info['artist']['bio']['content']) else: description()
def description(): print("Enter tag: ") tag = input() info = api.get_response(api.tag_client.get_info(tag)) if is_valid(info): line_break() print(f"Description for \"{tag}\": ") print(info['tag']['wiki']['content']) else: description()
def description(): print("Enter album name: ") album = input() print("Enter artist name: ") artist = input() info = api.get_response(api.album_client.get_info(album, artist)) if is_valid(info): line_break() print(f"Description for \"{album}\" by {artist}: ") print(info['album']['wiki']['content']) else: description()
def top_tracks(): print("Enter tag: ") tag = input() info = api.get_response(api.tag_client.get_top_tracks(tag)) if is_valid(info): line_break() print(f"Top tracks tagged with \"{tag}\": ") i = 1 for track in info['tracks']['track']: print(f"#{i}:", f"\"{track['name']}\" by", track['artist']['name']) i += 1 else: top_tracks()
def top_artists(): print("Enter tag: ") tag = input() info = api.get_response(api.tag_client.get_top_artists(tag)) if is_valid(info): line_break() print(f"Top artists tagged with \"{tag}\": ") i = 1 for artist in info['topartists']['artist']: print(f"#{i}:", artist['name']) i += 1 else: top_artists()
def description(): print("Enter track name: ") track = input() print("Enter artist name: ") artist = input() info = api.get_response(api.track_client.get_info(track, artist)) if is_valid(info): line_break() print(f"Description for \"{track}\" by {artist}: ") print(info['track']['wiki']['content']) print("Playcount:", f"{int(info['track']['playcount']):,}") print("Listeners:", f"{int(info['track']['listeners']):,}") else: description()
def tags(): print("Enter album name: ") album = input() print("Enter artist name: ") artist = input() info = api.get_response(api.album_client.get_top_tags(album, artist)) if is_valid(info): line_break() print(f"Tags associated with \"{album}\" by {artist}: ") for tag in info['toptags']['tag']: if not "album" in str(tag['name']) and not "own" in str( tag['name']): print(tag['name']) else: tags()
def search(): print("Enter album name: ") album = input() info = api.get_response(api.album_client.search(album)) if is_valid(info): line_break() print(f"Albums that match \"{album}\": ") i = 1 for album in info['results']['albummatches']: print(f"#{i}") print("Album:", album['name']) print("Artist:", album['artist']) if i != 10: print() i += 1 else: search()
def top_tags(): info = api.get_response(api.tag_client.get_top_tags()) if is_valid(info): line_break() print(f"Top tags on Last.FM: ") i = 1 tags = [] counts = [] for tag in info['toptags']['tag']: print(f"#{i}: ") print("Tag:", tag['name']) print("Count:", f"{int(tag['count']):,}") tags.append(tag['name']) counts.append(tag['count']) if i != 10: print() i += 1 create_graph("Tag", "Count", tags, counts) else: tag_select()
def global_top_tags(): info = api.get_response(api.chart_client.get_top_tags()) if is_valid(info): line_break() print(f"Today's top tags: ") i = 1 tags = [] counts = [] for tag in info['tags']['tag']: print(f"#{i}: ") print("Tag:", tag['name']) print("Count:", f"{int(tag['taggings']):,}") tags.append(tag['name']) counts.append(int(tag['taggings'])) if i != 10: print() i += 1 create_graph("Tag", "Count", tags, counts) else: today_select()
def global_top_artists(): info = api.get_response(api.chart_client.get_top_artists()) if is_valid(info): line_break() print(f"Today's top artists: ") i = 1 artists = [] playcounts = [] for artist in info['artists']['artist']: print(f"#{i}: ") print("Artist:", artist['name']) print("Playcount:", f"{int(artist['playcount']):,}") print("Listeners:", f"{int(artist['listeners']):,}") artists.append(artist['name']) playcounts.append(int(artist['playcount'])) if i != 10: print() i += 1 create_graph("Artist", "Playcount", artists, playcounts) else: today_select()
def global_top_tracks(): info = api.get_response(api.chart_client.get_top_tracks()) if is_valid(info): line_break() print(f"Today's top tracks: ") i = 1 tracks = [] playcounts = [] for track in info['tracks']['artist']: print(f"#{i}: ") print("Track:", track['name']) print("Artist:", track['artist']['name']) print("Playcount:", f"{int(track['playcount']):,}") print("Listeners:", f"{int(track['listeners']):,}") tracks.append(f"{track['name']}\n({track['artist']['name']})") playcounts.append(int(track['playcount'])) if i != 10: print() i += 1 create_graph("Track", "Playcount", tracks, playcounts) else: today_select()
def search(): print("Enter artist name: ") artist = input() info = api.get_response(api.artist_client.search(artist)) if is_valid(info): line_break() print(f"Artists that match \"{artist}\": ") i = 1 artists = [] listeners = [] for artist in info['results']['artistmatches']['artist']: print(f"#{i}: ") print("Artist:", artist['name']) print(f"Listeners: {int(artist['listeners']):,}") artists.append(artist['name']) listeners.append(int(artist['listeners'])) if i != 10: print() i += 1 create_graph("Artist", "Listeners", artists, listeners) else: search()
def tags(): print("Enter artist name: ") artist = input() info = api.get_response(api.artist_client.get_top_tags(artist)) if is_valid(info): line_break() print(f"Top tags for {artist}: ") i = 1 tags = [] counts = [] for tag in info['toptags']['tag']: print(f"#{i}:") print("Tag Name:", tag['name']) print(f"Count: {int(tag['count']):,}") tags.append(tag['name']) counts.append(int(tag['count'])) if i != 10: print() i += 1 create_graph("Tags", "Count", tags, counts) else: tags()
def tracks(): print("Enter artist name: ") artist = input() info = api.get_response(api.artist_client.get_top_tracks(artist)) if is_valid(info): line_break() print(f"Top tracks for {artist}: ") i = 1 tracks = [] playcounts = [] for track in info['toptracks']['track']: print(f"#{i}:") print("Track Name:", track['name']) print(f"Playcount: {int(track['playcount']):,}") tracks.append(track['name']) playcounts.append(int(track['playcount'])) if i != 10: print() i += 1 create_graph("Tracks", "Playcount", tracks, playcounts) else: tracks()
def albums(): print("Enter artist name: ") artist = input() info = api.get_response(api.artist_client.get_top_albums(artist)) if is_valid(info): line_break() print(f"Albums by {artist}: ") i = 1 albums = [] playcounts = [] for album in info['topalbums']['album']: print(f"#{i}:") print("Album Name:", album['name']) print(f"Playcount: {int(album['playcount']):,}") albums.append(album['name']) playcounts.append(int(album['playcount'])) if i != 10: print() i += 1 create_graph("Albums", "Playcount", albums, playcounts) else: albums()
def similar_artists(): print("Enter artist name: ") artist = input() info = api.get_response(api.artist_client.get_similar(artist)) if is_valid(info): line_break() print(f"Artists similar to {artist}: ") i = 1 artists = [] matches = [] for artist in info['similarartists']['artist']: print(f"#{i}:") print("Artist:", artist['name']) print(f"Match: {float(artist['match']):.0%}") artists.append(artist['name']) matches.append(float(artist['match']) * 100) if i != 10: print() i += 1 create_graph("Artist", "% Match", artists, matches) else: similar_artists()
def country_top_artists(): print("Enter country:") country = input() country = check_usa(country) info = api.get_response(api.geo_client.get_top_artists(country)) if is_valid(info): line_break() print(f"Top artists in {country}: ") i = 1 artists = [] listeners = [] for artist in info['topartists']['artist']: print(f"#{i}: ") print("Artist:", artist['name']) print("Listeners:", f"{int(artist['listeners']):,}") artists.append(artist['name']) listeners.append(int(artist['listeners'])) if i != 10: print() i += 1 create_graph("Artist", "Listeners", artists, listeners) else: country_top_artists()
def search(): print("Enter track name: ") track = input() info = api.get_response(api.track_client.search(track)) if is_valid(info): line_break() print(f"Tracks that match \"{track}\": ") i = 1 tracks = [] listeners = [] for track in info['results']['trackmatches']['track']: print(f"#{i}: ") print("Track:", track['name']) print("Artist:", track['artist']) print("Listeners:", f"{int(track['listeners']):,}") tracks.append(f"{track['name']}\n({track['artist']['name']})") listeners.append(int(track['listeners'])) if i != 10: print() i += 1 create_graph("Track", "Listeners", tracks, listeners) else: search()
def country_top_tracks(): print("Enter country:") country = input() country = check_usa(country) info = api.get_response(api.geo_client.get_top_tracks(country)) if is_valid(info): line_break() print(f"Top tracks in {country}: ") i = 1 tracks = [] listeners = [] for track in info['tracks']['track']: print(f"#{i}: ") print("Track:", track['name']) print("Artist:", track['artist']['name']) print("Listeners:", f"{int(track['listeners']):,}") tracks.append(f"{track['name']}\n({track['artist']['name']})") listeners.append(int(track['listeners'])) if i != 10: print() i += 1 create_graph("Track", "Listeners", tracks, listeners) else: country_top_tracks()