from pathlib import Path
from uuid import UUID

import requests
from PIL import Image


def get_year_from_date(first_air_date: str | None) -> int | None:
    if first_air_date:
        return int(first_air_date.split("-")[0])
    return None


def download_poster_image(storage_path: Path, poster_url: str, uuid: UUID) -> bool:
    res = requests.get(poster_url, stream=True, timeout=60)

    if res.status_code == 200:
        image_file_path = storage_path.joinpath(str(uuid)).with_suffix("jpg")
        image_file_path.write_bytes(res.content)

        original_image = Image.open(image_file_path)
        original_image.save(image_file_path.with_suffix(".avif"), quality=50)
        original_image.save(image_file_path.with_suffix(".webp"), quality=50)
        return True
    return False
