예제 #1
0
def _get_genres_list(sql_request):
    """
    get list of genres by slq request
    :param sql_request: slq request
    :return: list of genres
    """
    sql_data = get_data_from_db(sql_request)
    genres = create_genres_list(sql_data)
    return genres
def get_artist(id_artist: int) -> dict:
    """
    get all information (columns) about artist by id
    :param id_artist: id of artist
    :return: dict artists data
    """
    sql_request = sql_request_artist(id_artist)
    sql_data = get_data_from_db(sql_request)
    artist = create_artist(sql_data)
    return artist
예제 #3
0
def get_songs_year(year: int) -> list:
    """
    get year's song data tuple
    :param year: year :)
    :return: year's song data dict
    """
    sql_request = sql_request_songs_year(year)
    sql_data = get_data_from_db(sql_request)
    songs = create_songs_year(sql_data)
    return songs
예제 #4
0
def get_song(id_song: int) -> dict:
    """
    get all information (columns) about song by id
    :param id_song: id of song
    :return: dict song data
    """
    sql_request = sql_request_song(id_song)
    sql_data = get_data_from_db(sql_request)
    song = create_song(sql_data)
    return song
예제 #5
0
def get_genre(id_genre) -> dict:
    """
    get all information (columns) about genre by id
    :param id_genre: id of song
    :return: genre
    """
    sql_request = sql_request_genre(id_genre)
    sql_data = get_data_from_db(sql_request)
    genre = create_genre(sql_data)
    return genre
예제 #6
0
def get_genres_song(id_song) -> list:
    """
    Get song's genre data
    :param id_song: id of song
    :return: list song's genre data
    """
    sql_request = sql_request_genres_song(id_song)

    sql_data = get_data_from_db(sql_request)
    genres = create_genres(sql_data)
    return genres
예제 #7
0
def get_genres_artist(id_artist) -> list:
    """
    Get artist's genre data
    :param id_artist: id of artist
    :return:list artist's genre data
    """
    sql_request = sql_request_genres_artist(id_artist)

    sql_data = get_data_from_db(sql_request)
    genres = create_genres(sql_data)
    return genres
예제 #8
0
def get_genres_year(year) -> list:
    """
    get year's genre data
    :param year: billboard year
    :return: list genre data
    """
    sql_request = sql_request_genres_year(year)

    sql_data = get_data_from_db(sql_request)
    genres = create_data_of_year(sql_data)
    return genres
def get_artists_of_year(year: int) -> list:
    """
    get all performer's artists of songs by billboard year
    :param year: billboard year
    :return: list artists data
    """
    sql_request = sql_request_artists_year(year)

    sql_data = get_data_from_db(sql_request)
    artists = create_data_of_year(sql_data)
    return artists
예제 #10
0
def get_performers_of_song(id_song: int) -> list:
    """
    get all performer's artists of song by song id
    :param id_song: id of song
    :return: list artists data
    """
    sql_request = sql_request_performers_of_song(id_song)

    sql_data = get_data_from_db(sql_request)
    artists = create_artists(sql_data)
    return artists
예제 #11
0
def get_featuring_artists(id_artist: int) -> list:
    """
    get all the artists with whom current artist has performed songs
    :param id_artist: id of artist
    :return: list artists data
    """
    sql_request = sql_request_featuring_artists(id_artist)

    sql_data = get_data_from_db(sql_request)
    artists = create_artists(sql_data)
    return artists
예제 #12
0
def get_billboard_of_song(id_song) -> list:
    """
    Get billboard year and position of song
    :param id_song: id song
    :return: year and position data
    """
    sql_request = _sql_request_billboard_song(id_song)

    sql_data = get_data_from_db(sql_request)
    billboard = create_billboard_of_song(sql_data)
    return billboard
예제 #13
0
def get_songs_genre(id_genre: int, limit=0) -> list:
    """
    Get genre's song data tuple
    :param id_genre: id of genre
    :param limit: limit songs
    :return: genre's song data tuple
    """
    sql_request = sql_request_songs_genre(id_genre, limit)
    sql_data = get_data_from_db(sql_request)
    songs = create_songs_genre(sql_data)
    return songs
예제 #14
0
def get_years_list(years_, order='') -> dict:
    """
    Main function for getting tuple of years data by ids
    :param years_: list of required years
    :param order: request information of 'order by'
    :return: tuple of years data or empty list if doesn't have required information
    """
    sql_request = _sql_constructor_years(years_, order)

    sql_data = get_data_from_db(sql_request)
    years = create_years_list(sql_data)
    return years
예제 #15
0
def get_artists_genre(id_genre: int, limit=0) -> list:
    """
    get all artist by the genre
    :param id_genre: id of genre
    :param limit: limit of genres
    :return: list artists data
    """
    sql_request = sql_request_artists_genre(id_genre, limit)

    sql_data = get_data_from_db(sql_request)

    artists = create_artists(sql_data)
    return artists
예제 #16
0
def get_songs_artist(id_artist: int, id_song_pass=0, limit=0) -> list:
    """
    Get artist's songs data tuple
    :param id_artist: id of artist
    :param id_song_pass: id song to skip
    :param limit: limit songs
    :return: artist's songs data dict
    """
    sql_request = sql_request_songs_artist(id_artist, id_song_pass, limit)

    sql_data = get_data_from_db(sql_request)
    songs = create_songs_artist(sql_data)
    return songs
예제 #17
0
def get_years_genre(id_genre) -> dict:
    """
    get years that has song with current genre
    :param id_genre: current genre
    :return: tuple years data
    """
    # It's look strange, but it's fine, probably
    sql_request = _sql_request_years_genre(id_genre)
    sql_data = get_data_from_db(sql_request)
    years_list = get_ids_by_request(sql_request)
    years_data = get_years_list(years_list)

    years = create_years_genre(sql_data, years_data)
    return years
예제 #18
0
def _get_artists_list(id_artists: list, order='') -> list:
    """
     Main function for getting list of artists by ids
    :param id_artists: list of required ids of artists
    :param order: request information of 'order by'
    :return: list of artists data or empty list if doesn't have required information
    """
    sql_request = sql_constructor_artists(id_artists, order)
    if sql_request == '':
        return []
    sql_data = get_data_from_db(sql_request)

    artists = create_artists_list(sql_data)
    return artists
예제 #19
0
def _get_songs_list(id_songs: list, order='') -> list:
    """
    Main function for getting list of songs by ids
    :param id_songs: list required ids of songs
    :param order: request information of 'order by'
    :return: list of songs or empty list if doesn't have required information
    """
    sql_request = _sql_constructor_songs(id_songs, order)
    if sql_request == '':
        return []

    sql_data = get_data_from_db(sql_request)

    songs = create_songs_list(sql_data)
    return songs