import datetime
import logging

import pandas as pd
import pandas.core.series

logger = logging.getLogger("usdbdl")

def load(file: str):
    with open(file, 'rb') as f:
        return pd.read_excel(f)


def get_usdb_url(song: pandas.Series):
    return song["TXT Link"]


def get_cover_image_url(song: pandas.Series):
    return song["Cover Link"]


def get_yt_video_url(song: pandas.Series):
    return song["Video Link"]


def get_artist_name(song: pandas.Series):
    return song["Artist Name"]


def get_song_name(song: pandas.Series):
    return song["Track Name"]


def get_track_id(song: pandas.Series):
    return song["Spotify URI"]


def get_gap(song: pandas.Series):
    return song["GAP"]


def get_video_gap(song: pandas.Series):
    return song["VideoGAP"]


def get_start(song: pandas.Series):
    return song["Start"]


def get_end(song: pandas.Series):
    return song["End"]


def get_language(song: pandas.Series):
    return song["Language"]


def get_date(song: pandas.Series):
    logger.debug(f"{type(song['Release Date'])}, {song['Release Date']}")
    try:
        return datetime.date.fromisoformat(song["Release Date"])
    except TypeError:
        return datetime.date.min



class USDB:
    def __init__(self, file: str):
        self.data = load(file)