From df36a85b54fd427cc0914320d29aa4f005e5aff7 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 5 Feb 2025 23:10:15 +0100 Subject: trakt episode details --- import/src/tmdb.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'import/src/tmdb.rs') diff --git a/import/src/tmdb.rs b/import/src/tmdb.rs index 678ce61..70e95ce 100644 --- a/import/src/tmdb.rs +++ b/import/src/tmdb.rs @@ -116,6 +116,26 @@ impl Tmdb { }) .await } + + pub async fn episode_details( + &self, + series_id: u64, + season: usize, + episode: usize, + ) -> anyhow::Result> { + async_cache_memory(&["api-tmdb-episode-details", &format!("{series_id} {season} {episode}")], || async move { + info!("tmdb episode details {series_id} S={season} E={episode}"); + Ok(self + .image_client + .get(&format!("https://api.themoviedb.org/3/tv/{series_id}/season/{season}/episode/{episode}?api_key={}", self.key)) + .send() + .await? + .error_for_status()? + .json() + .await?) + }) + .await + } } pub fn parse_release_date(d: &str) -> anyhow::Result> { @@ -142,6 +162,18 @@ pub fn parse_release_date(d: &str) -> anyhow::Result> { Ok(Some(p.to_datetime_with_timezone(&Utc)?.timestamp_millis())) } +#[derive(Debug, Clone, Deserialize, Encode, Decode)] +pub struct TmdbEpisode { + pub air_date: String, + pub overview: String, + pub name: String, + pub id: u64, + pub runtime: f64, + pub still_path: Option, + pub vote_average: f64, + pub vote_count: usize, +} + #[derive(Debug, Clone, Deserialize, Encode, Decode)] pub struct TmdbPersonImage { pub id: u64, -- cgit v1.2.3-70-g09d2