from mutagen.id3 import ID3
from logging import debug, error


def get_album_art(file: str) -> bytes:
    """Get the album art for an audio file
    # Parameters
    `file` | str | Fully qualified path to file
    # Returns
    bytes for album art or placeholder artwork
    """
    default_image_path = "./assets/default_album_art.jpg"
    try:
        audio = ID3(file)
        for tag in audio.getall("APIC"):
            if tag.type == 3:  # 3 is the type for front cover
                return tag.data
        if audio.getall("APIC"):
            return audio.getall("APIC")[0].data
    except Exception as e:
        error(f"Error retrieving album art: {e}")
    with open(default_image_path, "rb") as f:
        debug("loading placeholder album art")
        return f.read()
