diff options
Diffstat (limited to 'import/src/plugins/trakt.rs')
| -rw-r--r-- | import/src/plugins/trakt.rs | 75 |
1 files changed, 26 insertions, 49 deletions
diff --git a/import/src/plugins/trakt.rs b/import/src/plugins/trakt.rs index 8c66c85..706d2b7 100644 --- a/import/src/plugins/trakt.rs +++ b/import/src/plugins/trakt.rs @@ -416,17 +416,17 @@ impl ImportPlugin for Trakt { } impl Trakt { - fn process_show(&self, ct: &ImportContext, node: NodeID, node_data: &Node) -> Result<()> { + fn process_show(&self, ct: &ImportContext, node: NodeID, data: &Node) -> Result<()> { let (trakt_kind, trakt_id): (_, u64) = - if let Some(id) = node_data.identifiers.get(&IdentifierType::TraktShow) { + if let Some(id) = data.identifiers.get(&IdentifierType::TraktShow) { (TraktKind::Show, id.parse()?) - } else if let Some(id) = node_data.identifiers.get(&IdentifierType::TraktMovie) { + } else if let Some(id) = data.identifiers.get(&IdentifierType::TraktMovie) { (TraktKind::Movie, id.parse()?) } else { return Ok(()); }; - let data = self.lookup(trakt_kind, trakt_id, ct.rt)?; + let details = self.lookup(trakt_kind, trakt_id, ct.rt)?; let people = self.people(trakt_kind, trakt_id, ct.rt)?; let mut people_map = BTreeMap::<CreditCategory, Vec<Appearance>>::new(); @@ -445,28 +445,6 @@ impl Trakt { } } - // let mut tmdb_data = None; - // let mut backdrop = None; - // let mut poster = None; - // if let Some(tmdb_id) = data.ids.tmdb { - // let data = tmdb.details( - // match trakt_kind { - // TraktKind::Movie => TmdbKind::Movie, - // TraktKind::Show => TmdbKind::Tv, - // _ => TmdbKind::Movie, - // }, - // tmdb_id, - // rthandle, - // )?; - // tmdb_data = Some(data.clone()); - - // if let Some(path) = &data.backdrop_path { - // backdrop = Some(tmdb.image(path, rthandle).context("tmdb backdrop image")?); - // } - // if let Some(path) = &data.poster_path { - // poster = Some(tmdb.image(path, rthandle).context("tmdb poster image")?); - // } - // for p in people_map.values_mut().flatten() { // if let Some(id) = p.person.ids.tmdb { // let k = rthandle.block_on(tmdb.person_image(id))?; @@ -476,38 +454,37 @@ impl Trakt { // } // } // } - // } ct.db.update_node_init(node, |node| { - node.title = Some(data.title.clone()); - node.credits.extend(people_map); node.kind = trakt_kind.as_node_kind(); - if let Some(overview) = &data.overview { + node.title = Some(details.title.clone()); + if let Some(overview) = &details.overview { node.description = Some(overview.clone()) } - if let Some(tagline) = &data.tagline { + if let Some(tagline) = &details.tagline { node.tagline = Some(tagline.clone()) } - if let Some(rating) = &data.rating { + node.credits.extend(people_map); + if let Some(x) = details.ids.imdb.clone() { + node.identifiers.insert(IdentifierType::Imdb, x); + } + if let Some(x) = details.ids.tvdb.clone() { + node.identifiers.insert(IdentifierType::Tvdb, x.to_string()); + } + if let Some(x) = details.ids.tmdb.clone() { + match trakt_kind { + TraktKind::Movie => node + .identifiers + .insert(IdentifierType::TmdbMovie, x.to_string()), + TraktKind::Show => node + .identifiers + .insert(IdentifierType::TmdbSeries, x.to_string()), + _ => None, + }; + } + if let Some(rating) = &details.rating { node.ratings.insert(RatingType::Trakt, *rating); } - // if let Some(poster) = poster { - // node.pictures.insert(PictureSlot::Cover, poster); - // } - // if let Some(backdrop) = backdrop { - // node.pictures.insert(PictureSlot::Backdrop, backdrop); - // } - // if let Some(data) = tmdb_data { - // node.title = data.title.clone().or(node.title.clone()); - // node.tagline = data.tagline.clone().or(node.tagline.clone()); - // node.description = Some(data.overview.clone()); - // node.ratings.insert(RatingType::Tmdb, data.vote_average); - // if let Some(date) = data.release_date.clone() { - // if let Ok(date) = tmdb::parse_release_date(&date) { - // node.release_date = date; - // } - // } - // } Ok(()) })?; Ok(()) |