Пример #1
0
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()
Пример #2
0
def last_step():
    line_break()
    print("Anything else? (Y/N)")
    selection = input()
    if selection.upper() == "Y" or selection.upper() == "YES":
        top_level()
    else:
        print("Goodbye.")
Пример #3
0
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()
Пример #4
0
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()
Пример #5
0
def country_select():
    line_break()
    prompt(['1: Top Artists', '2: Top Tracks'])
    selection = int(input())
    if selection == 1:
        country_top_artists()
    elif selection == 2:
        country_top_tracks()
    else:
        print("Invalid selection.")
        country_select()
Пример #6
0
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()
Пример #7
0
def global_select():
    line_break()
    prompt(['1: Top Artists', '2: Top Tracks', '3: Top Tags'])
    selection = int(input())
    if selection == 1:
        global_top_artists()
    elif selection == 2:
        global_top_tracks()
    elif selection == 3:
        global_top_tags()
    else:
        print("Invalid selection.")
        global_select()
Пример #8
0
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()
Пример #9
0
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()
Пример #10
0
def album_select():
    line_break()
    prompt(['1: Description', '2: Tags', '3: Search albums'])
    selection = int(input())
    line_break()
    if selection == 1:
        description()
    elif selection == 2:
        tags()
    elif selection == 3:
        search()
    else:
        print("Invalid selection.")
        album_select()
Пример #11
0
def today_select():
    line_break()
    print("Global stats or just one country?")
    options = ['1: Global', '2: Country']
    for option in options:
        print(option)
    selection = int(input())
    if selection == 1:
        global_select()
    elif selection == 2:
        country_select()
    else:
        print("Invalid selection.")
        today_select()
Пример #12
0
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()
Пример #13
0
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()
Пример #14
0
def track_select():
    line_break()
    prompt(['1: Description', '2: Similar Songs', '3: Tags', '4: Search'])
    selection = int(input())
    line_break()
    if selection == 1:
        description()
    elif selection == 2:
        similar_songs()
    elif selection == 3:
        tags()
    elif selection == 4:
        search()
    else:
        print("Invalid selection.")
        track_select()
Пример #15
0
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()
Пример #16
0
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()
Пример #17
0
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()
Пример #18
0
def artist_select():
    line_break()
    prompt(['1: Description', '2: Albums', '3: Tracks', '4: Tags', '5: Similar Artists', '6: Search'])
    selection = int(input())
    line_break()
    if selection == 1:
        description()
    elif selection == 2:
        albums()
    elif selection == 3:
        tracks()
    elif selection == 4:
        tags()
    elif selection == 5:
        similar_artists()
    elif selection == 6:
        search()
    else:
        print("Invalid selection.")
        artist_select()
Пример #19
0
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()
Пример #20
0
def tag_select():
    line_break()
    prompt([
        '1: Description', '2: Top Albums', '3: Top Artists', '4: Top Tags',
        '5: Top Tracks'
    ])
    selection = int(input())
    line_break()
    if selection == 1:
        description()
    elif selection == 2:
        top_albums()
    elif selection == 3:
        top_artists()
    elif selection == 4:
        top_tags()
    elif selection == 5:
        top_tracks()
    else:
        print("Invalid selection.")
        tag_select()
Пример #21
0
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()
Пример #22
0
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()
Пример #23
0
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()
Пример #24
0
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()
Пример #25
0
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()
Пример #26
0
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()
Пример #27
0
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()
Пример #28
0
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()
Пример #29
0
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()
Пример #30
0
def main():
    print("WELCOME TO THE LAST.FM ANALYZER")
    line_break()
    top_level()