krystv's picture
Upload 107 files
3374e90 verified
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Image {
pub url: String, pub layout: String,
pub width: Option<u32>, pub height: Option<u32>, pub blurhash: Option<String>,
}
#[derive(Debug, Clone, Default, serde::Serialize, serde::Deserialize)]
pub struct ImageSet {
pub low: Option<Image>, pub medium: Option<Image>, pub high: Option<Image>,
pub backdrop: Option<Image>, pub logo: Option<Image>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct LinkedId { pub source: String, pub id: String }
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct MediaCard {
pub id: String, pub title: String, pub kind: Option<String>,
pub images: Option<ImageSet>, pub original_title: Option<String>,
pub tagline: Option<String>, pub year: Option<String>,
pub score: Option<u32>, pub genres: Vec<String>,
pub status: Option<String>, pub content_rating: Option<String>,
pub url: Option<String>, pub ids: Vec<LinkedId>, pub extra: Vec<(String, String)>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct CategoryLink { pub id: String, pub title: String, pub subtitle: Option<String>, pub image: Option<Image> }
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct HomeSection {
pub id: String, pub title: String, pub subtitle: Option<String>,
pub items: Vec<MediaCard>, pub next_page: Option<String>,
pub layout: String, pub show_rank: bool,
pub categories: Vec<CategoryLink>, pub extra: Vec<(String, String)>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct PagedResult { pub items: Vec<MediaCard>, pub categories: Vec<CategoryLink>, pub next_page: Option<String> }
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct SearchFilters { pub kind: Option<String>, pub page_token: Option<String>, pub fast_match: bool }
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Episode {
pub id: String, pub title: String, pub number: Option<f64>, pub season: Option<f64>,
pub images: Option<ImageSet>, pub description: Option<String>,
pub released: Option<String>, pub score: Option<u32>,
pub url: Option<String>, pub tags: Vec<String>, pub extra: Vec<(String, String)>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Season {
pub id: String, pub title: String, pub number: Option<f64>,
pub year: Option<u32>, pub episodes: Vec<Episode>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Person { pub id: String, pub name: String, pub image: Option<ImageSet>, pub role: Option<String>, pub url: Option<String> }
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct MediaInfo {
pub id: String, pub title: String, pub kind: String,
pub images: Option<ImageSet>, pub original_title: Option<String>,
pub description: Option<String>, pub score: Option<u32>,
pub scored_by: Option<u64>, pub year: Option<String>,
pub release_date: Option<String>, pub genres: Vec<String>,
pub tags: Vec<String>, pub status: Option<String>,
pub content_rating: Option<String>, pub seasons: Vec<Season>,
pub cast: Vec<Person>, pub crew: Vec<Person>,
pub runtime_minutes: Option<u32>, pub trailer_url: Option<String>,
pub ids: Vec<LinkedId>, pub studio: Option<String>,
pub country: Option<String>, pub language: Option<String>,
pub url: Option<String>, pub extra: Vec<(String, String)>,
}