Lidarr support #1
@@ -6,7 +6,8 @@ mod tests {
|
||||
use crate::app::App;
|
||||
use crate::app::radarr::ActiveRadarrBlock;
|
||||
use crate::models::radarr_models::{
|
||||
AddMovieBody, AddMovieOptions, Collection, CollectionMovie, Credit, Movie, RadarrRelease,
|
||||
AddMovieBody, AddMovieOptions, Collection, CollectionMovie, Credit, MinimumAvailability, Movie,
|
||||
MovieMonitor, RadarrRelease,
|
||||
};
|
||||
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
|
||||
use crate::models::servarr_models::Indexer;
|
||||
@@ -88,13 +89,13 @@ mod tests {
|
||||
tmdb_id: 1234,
|
||||
title: "Test".to_owned(),
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
minimum_availability: "announced".to_owned(),
|
||||
minimum_availability: MinimumAvailability::Announced,
|
||||
monitored: true,
|
||||
quality_profile_id: 2222,
|
||||
tags: vec![1, 2],
|
||||
tag_input_string: None,
|
||||
add_options: AddMovieOptions {
|
||||
monitor: "movieOnly".to_owned(),
|
||||
monitor: MovieMonitor::MovieOnly,
|
||||
search_for_movie: true,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -122,12 +122,12 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, RadarrAddCommand> for RadarrAddCommandHan
|
||||
title: String::new(),
|
||||
root_folder_path,
|
||||
quality_profile_id,
|
||||
minimum_availability: minimum_availability.to_string(),
|
||||
minimum_availability,
|
||||
monitored: !disable_monitoring,
|
||||
tags,
|
||||
tag_input_string: None,
|
||||
add_options: AddMovieOptions {
|
||||
monitor: monitor.to_string(),
|
||||
monitor,
|
||||
search_for_movie: !no_search_for_movie,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -384,12 +384,12 @@ mod tests {
|
||||
title: String::new(),
|
||||
root_folder_path: "/test".to_owned(),
|
||||
quality_profile_id: 1,
|
||||
minimum_availability: "released".to_owned(),
|
||||
minimum_availability: MinimumAvailability::Released,
|
||||
monitored: false,
|
||||
tags: vec![1, 2],
|
||||
tag_input_string: None,
|
||||
add_options: AddMovieOptions {
|
||||
monitor: "movieAndCollection".to_owned(),
|
||||
monitor: MovieMonitor::MovieAndCollection,
|
||||
search_for_movie: false,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -137,12 +137,12 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrAddCommand> for SonarrAddCommandHan
|
||||
root_folder_path,
|
||||
quality_profile_id,
|
||||
language_profile_id,
|
||||
series_type: series_type.to_string(),
|
||||
series_type,
|
||||
season_folder: !disable_season_folders,
|
||||
tags,
|
||||
tag_input_string: None,
|
||||
add_options: AddSeriesOptions {
|
||||
monitor: monitor.to_string(),
|
||||
monitor,
|
||||
search_for_cutoff_unmet_episodes: !no_search_for_series,
|
||||
search_for_missing_episodes: !no_search_for_series,
|
||||
},
|
||||
|
||||
@@ -517,13 +517,13 @@ mod tests {
|
||||
root_folder_path: "/test".to_owned(),
|
||||
quality_profile_id: 1,
|
||||
language_profile_id: 1,
|
||||
series_type: "anime".to_owned(),
|
||||
series_type: SeriesType::Anime,
|
||||
monitored: false,
|
||||
tags: vec![1, 2],
|
||||
tag_input_string: None,
|
||||
season_folder: false,
|
||||
add_options: AddSeriesOptions {
|
||||
monitor: "future".to_owned(),
|
||||
monitor: SeriesMonitor::Future,
|
||||
search_for_cutoff_unmet_episodes: false,
|
||||
search_for_missing_episodes: false,
|
||||
},
|
||||
|
||||
@@ -83,8 +83,8 @@ impl AddMovieHandler<'_, '_> {
|
||||
.unwrap();
|
||||
|
||||
let path = root_folder_list.current_selection().path.clone();
|
||||
let monitor = monitor_list.current_selection().to_string();
|
||||
let minimum_availability = minimum_availability_list.current_selection().to_string();
|
||||
let monitor = *monitor_list.current_selection();
|
||||
let minimum_availability = *minimum_availability_list.current_selection();
|
||||
|
||||
AddMovieBody {
|
||||
tmdb_id,
|
||||
|
||||
@@ -5,7 +5,7 @@ pub(in crate::handlers::radarr_handlers) mod utils {
|
||||
use crate::models::radarr_models::{
|
||||
AddMovieBody, AddMovieOptions, AddMovieSearchResult, Collection, CollectionMovie,
|
||||
DownloadRecord, IndexerSettings, MediaInfo, MinimumAvailability, Movie, MovieCollection,
|
||||
MovieFile, RadarrRelease, Rating, RatingsList,
|
||||
MovieFile, MovieMonitor, RadarrRelease, Rating, RatingsList,
|
||||
};
|
||||
use crate::models::servarr_models::{
|
||||
Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder,
|
||||
@@ -470,13 +470,13 @@ pub(in crate::handlers::radarr_handlers) mod utils {
|
||||
tmdb_id: 1234,
|
||||
title: "Test".to_owned(),
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
minimum_availability: "announced".to_owned(),
|
||||
minimum_availability: MinimumAvailability::Announced,
|
||||
monitored: true,
|
||||
quality_profile_id: 2222,
|
||||
tags: Vec::new(),
|
||||
tag_input_string: Some("usenet, testing".into()),
|
||||
add_options: AddMovieOptions {
|
||||
monitor: "movieOnly".to_owned(),
|
||||
monitor: MovieMonitor::MovieOnly,
|
||||
search_for_movie: true,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -74,8 +74,8 @@ impl AddSeriesHandler<'_, '_> {
|
||||
.unwrap();
|
||||
|
||||
let path = root_folder_list.current_selection().path.clone();
|
||||
let monitor = monitor_list.current_selection().to_string();
|
||||
let series_type = series_type_list.current_selection().to_string();
|
||||
let monitor = *monitor_list.current_selection();
|
||||
let series_type = *series_type_list.current_selection();
|
||||
|
||||
AddSeriesBody {
|
||||
tvdb_id,
|
||||
|
||||
@@ -1169,12 +1169,12 @@ mod tests {
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
quality_profile_id: 2222,
|
||||
language_profile_id: 2222,
|
||||
series_type: "standard".to_owned(),
|
||||
series_type: SeriesType::Standard,
|
||||
season_folder: true,
|
||||
tags: Vec::default(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
add_options: AddSeriesOptions {
|
||||
monitor: "all".to_owned(),
|
||||
monitor: SeriesMonitor::All,
|
||||
search_for_cutoff_unmet_episodes: true,
|
||||
search_for_missing_episodes: true,
|
||||
},
|
||||
@@ -1647,12 +1647,12 @@ mod tests {
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
quality_profile_id: 2222,
|
||||
language_profile_id: 2222,
|
||||
series_type: "standard".to_owned(),
|
||||
series_type: SeriesType::Standard,
|
||||
season_folder: true,
|
||||
tags: Vec::default(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
add_options: AddSeriesOptions {
|
||||
monitor: "all".to_owned(),
|
||||
monitor: SeriesMonitor::All,
|
||||
search_for_cutoff_unmet_episodes: true,
|
||||
search_for_missing_episodes: true,
|
||||
},
|
||||
@@ -1777,12 +1777,12 @@ mod tests {
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
quality_profile_id: 2222,
|
||||
language_profile_id: 2222,
|
||||
series_type: "standard".to_owned(),
|
||||
series_type: SeriesType::Standard,
|
||||
season_folder: true,
|
||||
tags: Vec::default(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
add_options: AddSeriesOptions {
|
||||
monitor: "all".to_owned(),
|
||||
monitor: SeriesMonitor::All,
|
||||
search_for_cutoff_unmet_episodes: true,
|
||||
search_for_missing_episodes: true,
|
||||
},
|
||||
|
||||
@@ -27,7 +27,7 @@ pub struct AddMovieBody {
|
||||
pub title: String,
|
||||
pub root_folder_path: String,
|
||||
pub quality_profile_id: i64,
|
||||
pub minimum_availability: String,
|
||||
pub minimum_availability: MinimumAvailability,
|
||||
pub monitored: bool,
|
||||
pub tags: Vec<i64>,
|
||||
#[serde(skip_serializing, skip_deserializing)]
|
||||
@@ -55,7 +55,7 @@ pub struct AddMovieSearchResult {
|
||||
#[derive(Default, Clone, Serialize, Debug, PartialEq, Eq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct AddMovieOptions {
|
||||
pub monitor: String,
|
||||
pub monitor: MovieMonitor,
|
||||
pub search_for_movie: bool,
|
||||
}
|
||||
|
||||
@@ -268,8 +268,20 @@ pub enum MinimumAvailability {
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Default, PartialEq, Eq, Clone, Copy, Debug, EnumIter, ValueEnum, Display, EnumDisplayStyle,
|
||||
Serialize,
|
||||
Deserialize,
|
||||
Default,
|
||||
PartialEq,
|
||||
Eq,
|
||||
Clone,
|
||||
Copy,
|
||||
Debug,
|
||||
EnumIter,
|
||||
ValueEnum,
|
||||
Display,
|
||||
EnumDisplayStyle,
|
||||
)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[strum(serialize_all = "camelCase")]
|
||||
pub enum MovieMonitor {
|
||||
#[default]
|
||||
|
||||
@@ -31,7 +31,7 @@ pub struct AddSeriesBody {
|
||||
pub root_folder_path: String,
|
||||
pub quality_profile_id: i64,
|
||||
pub language_profile_id: i64,
|
||||
pub series_type: String,
|
||||
pub series_type: SeriesType,
|
||||
pub season_folder: bool,
|
||||
pub tags: Vec<i64>,
|
||||
#[serde(skip_serializing, skip_deserializing)]
|
||||
@@ -68,7 +68,7 @@ pub struct AddSeriesSearchResultStatistics {
|
||||
#[derive(Default, Clone, Serialize, Debug, PartialEq, Eq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct AddSeriesOptions {
|
||||
pub monitor: String,
|
||||
pub monitor: SeriesMonitor,
|
||||
pub search_for_cutoff_unmet_episodes: bool,
|
||||
pub search_for_missing_episodes: bool,
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
mod tests {
|
||||
use crate::models::radarr_models::{
|
||||
AddMovieBody, AddMovieOptions, Credit, DeleteMovieParams, DownloadRecord, EditMovieParams,
|
||||
MinimumAvailability, Movie, MovieHistoryItem, RadarrReleaseDownloadBody,
|
||||
MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, RadarrReleaseDownloadBody,
|
||||
};
|
||||
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
|
||||
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
|
||||
@@ -50,13 +50,13 @@ mod tests {
|
||||
tmdb_id: 1234,
|
||||
title: "Test".to_owned(),
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
minimum_availability: "announced".to_owned(),
|
||||
minimum_availability: MinimumAvailability::Announced,
|
||||
monitored: true,
|
||||
quality_profile_id: 2222,
|
||||
tags: vec![1, 2],
|
||||
tag_input_string: Some("usenet, testing".into()),
|
||||
add_options: AddMovieOptions {
|
||||
monitor: "movieOnly".to_owned(),
|
||||
monitor: MovieMonitor::MovieOnly,
|
||||
search_for_movie: true,
|
||||
},
|
||||
};
|
||||
@@ -99,13 +99,13 @@ mod tests {
|
||||
tmdb_id: 1234,
|
||||
title: "Test".to_owned(),
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
minimum_availability: "announced".to_owned(),
|
||||
minimum_availability: MinimumAvailability::Announced,
|
||||
monitored: true,
|
||||
quality_profile_id: 2222,
|
||||
tags: vec![1, 2],
|
||||
tag_input_string: None,
|
||||
add_options: AddMovieOptions {
|
||||
monitor: "movieOnly".to_owned(),
|
||||
monitor: MovieMonitor::MovieOnly,
|
||||
search_for_movie: true,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
mod tests {
|
||||
use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
|
||||
use crate::models::sonarr_models::{
|
||||
AddSeriesBody, AddSeriesOptions, DeleteSeriesParams, EditSeriesParams, Series, SeriesType,
|
||||
SonarrHistoryItem, SonarrSerdeable,
|
||||
AddSeriesBody, AddSeriesOptions, DeleteSeriesParams, EditSeriesParams, Series, SeriesMonitor,
|
||||
SeriesType, SonarrHistoryItem, SonarrSerdeable,
|
||||
};
|
||||
use crate::models::stateful_table::{SortOption, StatefulTable};
|
||||
use crate::network::NetworkResource;
|
||||
@@ -27,12 +27,12 @@ mod tests {
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
quality_profile_id: 2222,
|
||||
language_profile_id: 2222,
|
||||
series_type: "standard".to_owned(),
|
||||
series_type: SeriesType::Standard,
|
||||
season_folder: true,
|
||||
tags: Vec::new(),
|
||||
tag_input_string: Some("usenet, testing".to_owned()),
|
||||
add_options: AddSeriesOptions {
|
||||
monitor: "all".to_owned(),
|
||||
monitor: SeriesMonitor::All,
|
||||
search_for_cutoff_unmet_episodes: true,
|
||||
search_for_missing_episodes: true,
|
||||
},
|
||||
@@ -82,12 +82,12 @@ mod tests {
|
||||
root_folder_path: "/nfs2".to_owned(),
|
||||
quality_profile_id: 2222,
|
||||
language_profile_id: 2222,
|
||||
series_type: "standard".to_owned(),
|
||||
series_type: SeriesType::Standard,
|
||||
season_folder: true,
|
||||
tags: vec![1, 2],
|
||||
tag_input_string: None,
|
||||
add_options: AddSeriesOptions {
|
||||
monitor: "all".to_owned(),
|
||||
monitor: SeriesMonitor::All,
|
||||
search_for_cutoff_unmet_episodes: true,
|
||||
search_for_missing_episodes: true,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user