#!/usr/bin/python3
import sys
from pathlib import Path
from typing import cast

from mutagen.aiff import AIFF
from XappThumbnailers import Thumbnailer

thumbnailer = Thumbnailer()


def extract_cover_aiff_file(filepath: Path) -> bytes | None:
    try:
        aiff_file: AIFF = AIFF(str(filepath))
        if aiff_file.tags is None:
            return None
        return cast(bytes, aiff_file.tags.getall(key="APIC")[0].data)
    except:
        return None


try:
    cover_data: bytes | None = extract_cover_aiff_file(filepath=Path(thumbnailer.args.input))
    if cover_data is not None:
        thumbnailer.save_bytes(data=cover_data)
except Exception:
    sys.exit(1)

sys.exit(0)