use std::sync::Arc; use crate::scrapers::{Media, MediaType, apple_music::AppleMusicClient, backloggd, letterboxd}; use askama::Template; #[derive(Template, Debug, Clone)] #[template(path = "media.html")] pub struct MediaTemplate { pub media_type: MediaType, pub media: Media, } pub async fn fetch_media_of_type( media_type: MediaType, apple_music_client: Arc, ) -> Option { match media_type { MediaType::Game => backloggd::cached_fetch().await, MediaType::Film => letterboxd::cached_fetch().await, MediaType::Song => apple_music_client.cached_fetch().await, } }