feat(cli): Support for adding a series to Sonarr
This commit is contained in:
+11
-11
@@ -29,7 +29,7 @@ pub struct AddMovieBody {
|
||||
pub minimum_availability: String,
|
||||
pub monitored: bool,
|
||||
pub tags: Vec<i64>,
|
||||
pub add_options: AddOptions,
|
||||
pub add_options: AddMovieOptions,
|
||||
}
|
||||
|
||||
#[derive(Derivative, Serialize, Deserialize, Debug, Default, Clone, PartialEq, Eq)]
|
||||
@@ -51,7 +51,7 @@ pub struct AddMovieSearchResult {
|
||||
|
||||
#[derive(Default, Clone, Serialize, Debug, PartialEq, Eq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct AddOptions {
|
||||
pub struct AddMovieOptions {
|
||||
pub monitor: String,
|
||||
pub search_for_movie: bool,
|
||||
}
|
||||
@@ -305,30 +305,30 @@ impl<'a> EnumDisplayStyle<'a> for MinimumAvailability {
|
||||
}
|
||||
|
||||
#[derive(Default, PartialEq, Eq, Clone, Copy, Debug, EnumIter, ValueEnum)]
|
||||
pub enum Monitor {
|
||||
pub enum MovieMonitor {
|
||||
#[default]
|
||||
MovieOnly,
|
||||
MovieAndCollection,
|
||||
None,
|
||||
}
|
||||
|
||||
impl Display for Monitor {
|
||||
impl Display for MovieMonitor {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
let monitor = match self {
|
||||
Monitor::MovieOnly => "movieOnly",
|
||||
Monitor::MovieAndCollection => "movieAndCollection",
|
||||
Monitor::None => "none",
|
||||
MovieMonitor::MovieOnly => "movieOnly",
|
||||
MovieMonitor::MovieAndCollection => "movieAndCollection",
|
||||
MovieMonitor::None => "none",
|
||||
};
|
||||
write!(f, "{monitor}")
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> EnumDisplayStyle<'a> for Monitor {
|
||||
impl<'a> EnumDisplayStyle<'a> for MovieMonitor {
|
||||
fn to_display_str(self) -> &'a str {
|
||||
match self {
|
||||
Monitor::MovieOnly => "Movie only",
|
||||
Monitor::MovieAndCollection => "Movie and Collection",
|
||||
Monitor::None => "None",
|
||||
MovieMonitor::MovieOnly => "Movie only",
|
||||
MovieMonitor::MovieAndCollection => "Movie and Collection",
|
||||
MovieMonitor::None => "None",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ mod tests {
|
||||
radarr_models::{
|
||||
AddMovieSearchResult, BlocklistItem, BlocklistResponse, Collection, Credit, DiskSpace,
|
||||
DownloadRecord, DownloadsResponse, Indexer, IndexerSettings, IndexerTestResult,
|
||||
MinimumAvailability, Monitor, Movie, MovieHistoryItem, QualityProfile, RadarrRelease,
|
||||
MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, QualityProfile, RadarrRelease,
|
||||
RadarrSerdeable, RadarrTask, RadarrTaskName, SystemStatus, Tag, Update,
|
||||
},
|
||||
servarr_models::{HostConfig, Log, LogResponse, QueueEvent, RootFolder, SecurityConfig},
|
||||
@@ -43,22 +43,22 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_monitor_display() {
|
||||
assert_str_eq!(Monitor::MovieOnly.to_string(), "movieOnly");
|
||||
assert_str_eq!(MovieMonitor::MovieOnly.to_string(), "movieOnly");
|
||||
assert_str_eq!(
|
||||
Monitor::MovieAndCollection.to_string(),
|
||||
MovieMonitor::MovieAndCollection.to_string(),
|
||||
"movieAndCollection"
|
||||
);
|
||||
assert_str_eq!(Monitor::None.to_string(), "none");
|
||||
assert_str_eq!(MovieMonitor::None.to_string(), "none");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_monitor_to_display_str() {
|
||||
assert_str_eq!(Monitor::MovieOnly.to_display_str(), "Movie only");
|
||||
assert_str_eq!(MovieMonitor::MovieOnly.to_display_str(), "Movie only");
|
||||
assert_str_eq!(
|
||||
Monitor::MovieAndCollection.to_display_str(),
|
||||
MovieMonitor::MovieAndCollection.to_display_str(),
|
||||
"Movie and Collection"
|
||||
);
|
||||
assert_str_eq!(Monitor::None.to_display_str(), "None");
|
||||
assert_str_eq!(MovieMonitor::None.to_display_str(), "None");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use strum::IntoEnumIterator;
|
||||
|
||||
use crate::models::radarr_models::{
|
||||
Collection, Credit, MinimumAvailability, Monitor, Movie, MovieHistoryItem, RadarrRelease,
|
||||
Collection, Credit, MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, RadarrRelease,
|
||||
};
|
||||
use crate::models::servarr_data::radarr::radarr_data::RadarrData;
|
||||
use crate::models::servarr_models::{Indexer, RootFolder};
|
||||
@@ -195,7 +195,7 @@ impl From<&RadarrData<'_>> for EditMovieModal {
|
||||
#[derive(Default)]
|
||||
pub struct AddMovieModal {
|
||||
pub root_folder_list: StatefulList<RootFolder>,
|
||||
pub monitor_list: StatefulList<Monitor>,
|
||||
pub monitor_list: StatefulList<MovieMonitor>,
|
||||
pub minimum_availability_list: StatefulList<MinimumAvailability>,
|
||||
pub quality_profile_list: StatefulList<String>,
|
||||
pub tags: HorizontallyScrollableText,
|
||||
@@ -206,7 +206,7 @@ impl From<&RadarrData<'_>> for AddMovieModal {
|
||||
let mut add_movie_modal = AddMovieModal::default();
|
||||
add_movie_modal
|
||||
.monitor_list
|
||||
.set_items(Vec::from_iter(Monitor::iter()));
|
||||
.set_items(Vec::from_iter(MovieMonitor::iter()));
|
||||
add_movie_modal
|
||||
.minimum_availability_list
|
||||
.set_items(Vec::from_iter(MinimumAvailability::iter()));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use crate::models::radarr_models::{Collection, MinimumAvailability, Monitor, Movie};
|
||||
use crate::models::radarr_models::{Collection, MinimumAvailability, Movie, MovieMonitor};
|
||||
use crate::models::servarr_data::radarr::modals::{
|
||||
AddMovieModal, EditCollectionModal, EditIndexerModal, EditMovieModal,
|
||||
};
|
||||
@@ -185,7 +185,7 @@ mod test {
|
||||
|
||||
assert_eq!(
|
||||
add_movie_modal.monitor_list.items,
|
||||
Vec::from_iter(Monitor::iter())
|
||||
Vec::from_iter(MovieMonitor::iter())
|
||||
);
|
||||
assert_eq!(
|
||||
add_movie_modal.minimum_availability_list.items,
|
||||
|
||||
@@ -102,6 +102,13 @@ pub enum ActiveSonarrBlock {
|
||||
AddSeriesPrompt,
|
||||
AddSeriesSearchInput,
|
||||
AddSeriesSearchResults,
|
||||
AddSeriesSelectLanguageProfile,
|
||||
AddSeriesSelectMonitor,
|
||||
AddSeriesSelectQualityProfile,
|
||||
AddSeriesSelectRootFolder,
|
||||
AddSeriesSelectSeriesType,
|
||||
AddSeriesTagsInput,
|
||||
AddSeriesToggleUseSeasonFolder,
|
||||
AllIndexerSettingsPrompt,
|
||||
AutomaticallySearchEpisodePrompt,
|
||||
AutomaticallySearchSeasonPrompt,
|
||||
|
||||
Reference in New Issue
Block a user