diff options
author | metamuffin <metamuffin@disroot.org> | 2024-03-30 10:38:18 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-03-30 10:38:18 +0100 |
commit | d2d58e5ce076a00ad97836a036bcdacfb423dfcb (patch) | |
tree | 6d378c528e3b311bf70a6b80b6a4c84f99be1741 /import/src/lib.rs | |
parent | 7f9ab0e949666647074f8d195308a69b224024bb (diff) | |
download | jellything-d2d58e5ce076a00ad97836a036bcdacfb423dfcb.tar jellything-d2d58e5ce076a00ad97836a036bcdacfb423dfcb.tar.bz2 jellything-d2d58e5ce076a00ad97836a036bcdacfb423dfcb.tar.zst |
probably fix tmdb import
Diffstat (limited to 'import/src/lib.rs')
-rw-r--r-- | import/src/lib.rs | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/import/src/lib.rs b/import/src/lib.rs index 7369f7a..bd8f586 100644 --- a/import/src/lib.rs +++ b/import/src/lib.rs @@ -8,7 +8,6 @@ pub mod infojson; pub mod tmdb; pub mod trakt; -use crate::tmdb::TmdbKind; use anyhow::{anyhow, bail, Context, Ok}; use async_recursion::async_recursion; use base64::Engine; @@ -23,7 +22,7 @@ use jellybase::{ use jellyclient::Session; use jellycommon::{ Asset, ExtendedNode, ImportOptions, ImportSource, MediaInfo, Node, NodeKind, NodePrivate, - NodePublic, PeopleGroup, Rating, SourceTrack, TrackSource, + NodePublic, PeopleGroup, Rating, SourceTrack, TmdbKind, TrackSource, TraktKind, }; use jellymatroska::read::EbmlReader; use jellyremuxer::metadata::import_metadata; @@ -361,28 +360,35 @@ async fn process_source( insert_node_ext(&id, node_ext)?; if let Some(tid) = trakt_object.ids.tmdb { - let mut index_path = index_path.to_vec(); - index_path.push(1); - process_source( - id, - ImportSource::Tmdb { id: tid }, - path, - &index_path, - db, - fed, - ap, - ) - .await?; + if let Some(kind) = match kind { + TraktKind::Movie => Some(TmdbKind::Movie), + TraktKind::Show => Some(TmdbKind::Tv), + TraktKind::Season => Some(TmdbKind::Tv), // TODO + TraktKind::Episode | TraktKind::Person | TraktKind::User => None, + } { + let mut index_path = index_path.to_vec(); + index_path.push(1); + process_source( + id, + ImportSource::Tmdb { id: tid, kind }, + path, + &index_path, + db, + fed, + ap, + ) + .await?; + } } } - ImportSource::Tmdb { id: tid } => { + ImportSource::Tmdb { id: tid, kind } => { info!("tmdb {id}"); let tmdb = ap .tmdb .as_ref() .ok_or(anyhow!("tmdb api key is required"))?; - let details = tmdb.details(TmdbKind::Movie, tid).await?; + let details = tmdb.details(kind, tid).await?; let mut node = Node::default(); @@ -517,7 +523,8 @@ async fn process_source( serde_json::from_str(&infojson).context("parsing infojson")?; node.public.kind = Some( - if infojson.duration.unwrap_or(0.) < 120. && infojson.aspect_ratio.unwrap_or(2.) < 1. + if infojson.duration.unwrap_or(0.) < 120. + && infojson.aspect_ratio.unwrap_or(2.) < 1. { NodeKind::ShortFormVideo } else { |