My personal site
cherry.computer
htmx
tailwind
axum
askama
1use std::sync::Arc;
2
3use crate::scrapers::{Media, MediaType, apple_music::AppleMusicClient, backloggd, letterboxd};
4
5use askama::Template;
6
7#[derive(Template, Debug, Clone)]
8#[template(path = "media.html")]
9pub struct MediaTemplate {
10 pub media_type: MediaType,
11 pub media: Media,
12}
13
14pub async fn fetch_media_of_type(
15 media_type: MediaType,
16 apple_music_client: Arc<AppleMusicClient>,
17) -> Option<Media> {
18 match media_type {
19 MediaType::Game => backloggd::cached_fetch().await,
20 MediaType::Film => letterboxd::cached_fetch().await,
21 MediaType::Song => apple_music_client.cached_fetch().await,
22 }
23}