diff options
author | metamuffin <metamuffin@disroot.org> | 2023-10-24 19:32:26 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-10-24 19:32:26 +0200 |
commit | 42568332b5433c97813e8c291db0fc0d15867b76 (patch) | |
tree | 299ef0d2306b2c986bdbe0df39545a5a2b04f062 /import/src/tmdb.rs | |
parent | 2fc5931a6ce9bbb75757c4a20022b19778bd91c5 (diff) | |
download | jellything-42568332b5433c97813e8c291db0fc0d15867b76.tar jellything-42568332b5433c97813e8c291db0fc0d15867b76.tar.bz2 jellything-42568332b5433c97813e8c291db0fc0d15867b76.tar.zst |
import -> jellytool
Diffstat (limited to 'import/src/tmdb.rs')
-rw-r--r-- | import/src/tmdb.rs | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/import/src/tmdb.rs b/import/src/tmdb.rs deleted file mode 100644 index 5f21afd..0000000 --- a/import/src/tmdb.rs +++ /dev/null @@ -1,95 +0,0 @@ -/* - This file is part of jellything (https://codeberg.org/metamuffin/jellything) - which is licensed under the GNU Affero General Public License (version 3); see /COPYING. - Copyright (C) 2023 metamuffin <metamuffin.org> -*/ -use log::info; -use serde::Deserialize; -use std::io::Write; - -#[derive(Debug, Clone, Deserialize)] -pub struct TmdbQuery { - pub page: usize, - pub results: Vec<TmdbQueryResult>, - pub total_pages: usize, - pub total_results: usize, -} - -#[derive(Debug, Clone, Deserialize)] -pub struct TmdbQueryResult { - pub adult: bool, - pub backdrop_path: Option<String>, - pub genre_ids: Vec<u64>, - pub id: u64, - pub original_language: Option<String>, - pub original_title: Option<String>, - pub overview: String, - pub popularity: f64, - pub poster_path: Option<String>, - pub release_date: Option<String>, - pub title: Option<String>, - pub name: Option<String>, - pub vote_average: f64, - pub vote_count: usize, -} - -#[derive(Debug, Clone, Deserialize)] -pub struct TmdbDetails { - pub adult: bool, - pub backdrop_path: Option<String>, - pub genres: Vec<TmdbGenre>, - pub id: u64, - pub original_language: Option<String>, - pub original_title: Option<String>, - pub overview: String, - pub popularity: f64, - pub poster_path: Option<String>, - pub release_date: Option<String>, - pub title: Option<String>, - pub name: Option<String>, - pub vote_average: f64, - pub vote_count: usize, - pub budget: Option<usize>, - pub homepage: Option<String>, - pub imdb_id: Option<String>, - pub production_companies: Vec<TmdbProductionCompany>, - pub revenue: Option<usize>, - pub tagline: Option<String>, -} - -#[derive(Debug, Clone, Deserialize)] -pub struct TmdbGenre { - pub id: u64, - pub name: String, -} - -#[derive(Debug, Clone, Deserialize)] -pub struct TmdbProductionCompany { - pub id: u64, - pub name: String, - pub logo_path: Option<String>, -} - -pub fn tmdb_search(kind: &str, query: &str, key: &str) -> anyhow::Result<TmdbQuery> { - info!("searching tmdb: {query:?}"); - Ok(reqwest::blocking::get(&format!( - "https://api.themoviedb.org/3/search/{kind}?query={}&api_key={key}", - query.replace(" ", "+") - ))? - .json::<TmdbQuery>()?) -} - -pub fn tmdb_details(kind: &str, id: u64, key: &str) -> anyhow::Result<TmdbDetails> { - info!("fetching details: {id:?}"); - Ok(reqwest::blocking::get(&format!( - "https://api.themoviedb.org/3/{kind}/{id}?api_key={key}" - ))? - .json()?) -} - -pub fn tmdb_image(path: &str, out: &mut impl Write) -> anyhow::Result<()> { - info!("downloading image {path:?}"); - let mut res = reqwest::blocking::get(&format!("https://image.tmdb.org/t/p/original{path}"))?; - res.copy_to(out)?; - Ok(()) -} |