From 492f054e23352b090fd9c64dadbe27e2c274c283 Mon Sep 17 00:00:00 2001 From: David Skrundz Date: Sun, 4 May 2025 22:30:50 -0600 Subject: [PATCH] Add genre strings --- Cargo.lock | 6 +++--- Cargo.toml | 4 ++-- crates/cli/Cargo.toml | 2 +- crates/cli/src/run/tmdb.rs | 2 ++ crates/flix/Cargo.toml | 2 +- crates/flix/src/model/movie.rs | 2 ++ crates/flix/src/model/show.rs | 2 ++ crates/tmdb/Cargo.toml | 2 +- crates/tmdb/src/model/collection.rs | 4 ++-- crates/tmdb/src/model/episode.rs | 2 +- crates/tmdb/src/model/genre.rs | 4 ++-- crates/tmdb/src/model/movie.rs | 6 +++--- crates/tmdb/src/model/season.rs | 2 +- crates/tmdb/src/model/show.rs | 4 ++-- 14 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 94c7c79..1a9f0f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -214,7 +214,7 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "flix" -version = "0.0.2" +version = "0.0.3" dependencies = [ "chrono", "flix-tmdb", @@ -224,7 +224,7 @@ dependencies = [ [[package]] name = "flix-cli" -version = "0.0.2" +version = "0.0.3" dependencies = [ "anyhow", "clap", @@ -238,7 +238,7 @@ dependencies = [ [[package]] name = "flix-tmdb" -version = "0.0.2" +version = "0.0.3" dependencies = [ "chrono", "reqwest", diff --git a/Cargo.toml b/Cargo.toml index 6ee4191..da3de64 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,8 +34,8 @@ overflow-checks = true strip = "debuginfo" [workspace.dependencies] -flix = { path = "crates/flix", version = "=0.0.2", default-features = false } -flix-tmdb = { path = "crates/tmdb", version = "=0.0.2", default-features = false } +flix = { path = "crates/flix", version = "=0.0.3", default-features = false } +flix-tmdb = { path = "crates/tmdb", version = "=0.0.3", default-features = false } anyhow = { version = "^1", default-features = false } chrono = { version = "^0.4", default-features = false } diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 48e3e45..0e3e40a 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flix-cli" -version = "0.0.2" +version = "0.0.3" categories = ["command-line-utilities"] description = "CLI for interacting with flix media" diff --git a/crates/cli/src/run/tmdb.rs b/crates/cli/src/run/tmdb.rs index 860c5b4..8a45862 100644 --- a/crates/cli/src/run/tmdb.rs +++ b/crates/cli/src/run/tmdb.rs @@ -46,6 +46,7 @@ impl TmdbObject { movie: GenericMovie { title: tmdb.title, overview: tmdb.overview, + genres: tmdb.genres.iter().cloned().map(|g| g.name).collect(), release_date: tmdb.release_date, }, tmdb: Some(TmdbMovie { @@ -57,6 +58,7 @@ impl TmdbObject { show: GenericShow { name: tmdb.name, overview: tmdb.overview, + genres: tmdb.genres.iter().cloned().map(|g| g.name).collect(), air_date: tmdb.first_air_date, }, tmdb: Some(TmdbShow { diff --git a/crates/flix/Cargo.toml b/crates/flix/Cargo.toml index d4f0a9c..5224e5d 100644 --- a/crates/flix/Cargo.toml +++ b/crates/flix/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flix" -version = "0.0.2" +version = "0.0.3" categories = [] description = "Types for storing persistent data about media" diff --git a/crates/flix/src/model/movie.rs b/crates/flix/src/model/movie.rs index dd6b51f..b9bc5d6 100644 --- a/crates/flix/src/model/movie.rs +++ b/crates/flix/src/model/movie.rs @@ -21,6 +21,8 @@ pub struct GenericMovie { pub title: String, /// The movie's overview pub overview: String, + /// The movie's genres + pub genres: Vec, /// The movie's release date pub release_date: NaiveDate, } diff --git a/crates/flix/src/model/show.rs b/crates/flix/src/model/show.rs index f0c9cef..711fd38 100644 --- a/crates/flix/src/model/show.rs +++ b/crates/flix/src/model/show.rs @@ -21,6 +21,8 @@ pub struct GenericShow { pub name: String, /// The show's overview pub overview: String, + /// The show's genres + pub genres: Vec, /// The show's air date pub air_date: NaiveDate, } diff --git a/crates/tmdb/Cargo.toml b/crates/tmdb/Cargo.toml index d936165..63a5353 100644 --- a/crates/tmdb/Cargo.toml +++ b/crates/tmdb/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flix-tmdb" -version = "0.0.2" +version = "0.0.3" categories = [] description = "Clients and models for fetching data from TMDB" diff --git a/crates/tmdb/src/model/collection.rs b/crates/tmdb/src/model/collection.rs index 358295c..2ca4476 100644 --- a/crates/tmdb/src/model/collection.rs +++ b/crates/tmdb/src/model/collection.rs @@ -1,7 +1,7 @@ use super::{CollectionId, MovieId}; /// A deserialized Collection from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct Collection { /// The collection's TMDB ID pub id: CollectionId, @@ -15,7 +15,7 @@ pub struct Collection { } /// A deserialized collection item from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct Item { /// The movie's TMDB ID pub id: MovieId, diff --git a/crates/tmdb/src/model/episode.rs b/crates/tmdb/src/model/episode.rs index 9e0ca6c..d7b3d9f 100644 --- a/crates/tmdb/src/model/episode.rs +++ b/crates/tmdb/src/model/episode.rs @@ -1,7 +1,7 @@ use chrono::NaiveDate; /// A deserialized Episode from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct Episode { /// The episode's number pub episode_number: i32, diff --git a/crates/tmdb/src/model/genre.rs b/crates/tmdb/src/model/genre.rs index 1075335..298d86c 100644 --- a/crates/tmdb/src/model/genre.rs +++ b/crates/tmdb/src/model/genre.rs @@ -1,7 +1,7 @@ use super::id::{MovieGenreId, ShowGenreId}; /// A deserialized movie Genre from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct MovieGenre { /// The genre's TMDB ID pub id: MovieGenreId, @@ -10,7 +10,7 @@ pub struct MovieGenre { } /// A deserialized show Genre from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct ShowGenre { /// The genre's TMDB ID pub id: ShowGenreId, diff --git a/crates/tmdb/src/model/movie.rs b/crates/tmdb/src/model/movie.rs index 176eca8..0a96e26 100644 --- a/crates/tmdb/src/model/movie.rs +++ b/crates/tmdb/src/model/movie.rs @@ -3,7 +3,7 @@ use chrono::NaiveDate; use super::{CollectionId, MovieGenre, MovieId}; /// A deserialized Movie from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct Movie { /// The movie's TMDB ID pub id: MovieId, @@ -23,14 +23,14 @@ pub struct Movie { } /// A deserialized movie's collection from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct InCollection { /// The collection's TMDB ID pub id: CollectionId, } /// A deserialized movie status from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, Copy, serde::Deserialize)] pub enum MovieStatus { /// The movie was cancelled #[serde(rename = "Canceled")] diff --git a/crates/tmdb/src/model/season.rs b/crates/tmdb/src/model/season.rs index 388ece4..7d4583e 100644 --- a/crates/tmdb/src/model/season.rs +++ b/crates/tmdb/src/model/season.rs @@ -3,7 +3,7 @@ use chrono::NaiveDate; use super::Episode; /// A deserialized Season from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct Season { /// The season's number pub season_number: i32, diff --git a/crates/tmdb/src/model/show.rs b/crates/tmdb/src/model/show.rs index d8ce31e..a6ab599 100644 --- a/crates/tmdb/src/model/show.rs +++ b/crates/tmdb/src/model/show.rs @@ -3,7 +3,7 @@ use chrono::NaiveDate; use super::{ShowGenre, ShowId}; /// A deserialized Show from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, serde::Deserialize)] pub struct Show { /// The show's TMDB ID pub id: ShowId, @@ -24,7 +24,7 @@ pub struct Show { } /// A deserialized show Status from the TMDB API -#[derive(Debug, serde::Deserialize)] +#[derive(Debug, Clone, Copy, serde::Deserialize)] pub enum ShowStatus { /// The show is returning #[serde(rename = "Returning Series")]