Added the full Radarr CLI so users can programmatically access all the same management features as in the TUI

This commit is contained in:
2024-10-29 18:47:40 -06:00
parent 217d3242a8
commit 1f8d72c939
65 changed files with 9401 additions and 1370 deletions
@@ -275,7 +275,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditIndexerHandler<'
ActiveRadarrBlock::EditIndexerConfirmPrompt => {
let radarr_data = &mut self.app.data.radarr_data;
if radarr_data.prompt_confirm {
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditIndexer);
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditIndexer(None));
self.app.should_refresh = true;
} else {
radarr_data.edit_indexer_modal = None;
@@ -66,6 +66,8 @@ mod tests {
}
mod test_handle_home_end {
use std::sync::atomic::Ordering;
use crate::app::App;
use crate::models::servarr_data::radarr::modals::EditIndexerModal;
use pretty_assertions::assert_eq;
@@ -89,7 +91,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -97,7 +99,7 @@ mod tests {
.unwrap()
.name
.offset
.borrow(),
.load(Ordering::SeqCst),
4
);
@@ -110,7 +112,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -118,7 +120,7 @@ mod tests {
.unwrap()
.name
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -140,7 +142,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -148,7 +150,7 @@ mod tests {
.unwrap()
.url
.offset
.borrow(),
.load(Ordering::SeqCst),
4
);
@@ -161,7 +163,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -169,7 +171,7 @@ mod tests {
.unwrap()
.url
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -191,7 +193,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -199,7 +201,7 @@ mod tests {
.unwrap()
.api_key
.offset
.borrow(),
.load(Ordering::SeqCst),
4
);
@@ -212,7 +214,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -220,7 +222,7 @@ mod tests {
.unwrap()
.api_key
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -242,7 +244,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -250,7 +252,7 @@ mod tests {
.unwrap()
.seed_ratio
.offset
.borrow(),
.load(Ordering::SeqCst),
4
);
@@ -263,7 +265,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -271,7 +273,7 @@ mod tests {
.unwrap()
.seed_ratio
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -293,7 +295,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -301,7 +303,7 @@ mod tests {
.unwrap()
.tags
.offset
.borrow(),
.load(Ordering::SeqCst),
4
);
@@ -314,7 +316,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -322,13 +324,15 @@ mod tests {
.unwrap()
.tags
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
}
mod test_handle_left_right_action {
use std::sync::atomic::Ordering;
use crate::app::App;
use crate::models::servarr_data::radarr::modals::EditIndexerModal;
use crate::models::servarr_data::radarr::radarr_data::{
@@ -511,7 +515,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -519,7 +523,7 @@ mod tests {
.unwrap()
.name
.offset
.borrow(),
.load(Ordering::SeqCst),
1
);
@@ -532,7 +536,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -540,7 +544,7 @@ mod tests {
.unwrap()
.name
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -562,7 +566,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -570,7 +574,7 @@ mod tests {
.unwrap()
.url
.offset
.borrow(),
.load(Ordering::SeqCst),
1
);
@@ -583,7 +587,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -591,7 +595,7 @@ mod tests {
.unwrap()
.url
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -613,7 +617,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -621,7 +625,7 @@ mod tests {
.unwrap()
.api_key
.offset
.borrow(),
.load(Ordering::SeqCst),
1
);
@@ -634,7 +638,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -642,7 +646,7 @@ mod tests {
.unwrap()
.api_key
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -664,7 +668,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -672,7 +676,7 @@ mod tests {
.unwrap()
.seed_ratio
.offset
.borrow(),
.load(Ordering::SeqCst),
1
);
@@ -685,7 +689,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -693,7 +697,7 @@ mod tests {
.unwrap()
.seed_ratio
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -715,7 +719,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -723,7 +727,7 @@ mod tests {
.unwrap()
.tags
.offset
.borrow(),
.load(Ordering::SeqCst),
1
);
@@ -736,7 +740,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.edit_indexer_modal
@@ -744,7 +748,7 @@ mod tests {
.unwrap()
.tags
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -821,7 +825,7 @@ mod tests {
assert!(app.should_refresh);
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditIndexer)
Some(RadarrEvent::EditIndexer(None))
);
}
@@ -49,7 +49,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
fn handle_scroll_up(&mut self) {
let indexer_settings = self.app.data.radarr_data.indexer_settings.as_mut().unwrap();
match self.active_radarr_block {
ActiveRadarrBlock::IndexerSettingsPrompt => {
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
self.app.data.radarr_data.selected_block.previous();
}
ActiveRadarrBlock::IndexerSettingsMinimumAgeInput => {
@@ -74,7 +74,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
fn handle_scroll_down(&mut self) {
let indexer_settings = self.app.data.radarr_data.indexer_settings.as_mut().unwrap();
match self.active_radarr_block {
ActiveRadarrBlock::IndexerSettingsPrompt => self.app.data.radarr_data.selected_block.next(),
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
self.app.data.radarr_data.selected_block.next()
}
ActiveRadarrBlock::IndexerSettingsMinimumAgeInput => {
if indexer_settings.minimum_age > 0 {
indexer_settings.minimum_age -= 1;
@@ -134,7 +136,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
fn handle_left_right_action(&mut self) {
match self.active_radarr_block {
ActiveRadarrBlock::IndexerSettingsPrompt => {
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
if self.app.data.radarr_data.selected_block.get_active_block()
== &ActiveRadarrBlock::IndexerSettingsConfirmPrompt
{
@@ -165,12 +167,12 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
fn handle_submit(&mut self) {
match self.active_radarr_block {
ActiveRadarrBlock::IndexerSettingsPrompt => {
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
match self.app.data.radarr_data.selected_block.get_active_block() {
ActiveRadarrBlock::IndexerSettingsConfirmPrompt => {
let radarr_data = &mut self.app.data.radarr_data;
if radarr_data.prompt_confirm {
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditAllIndexerSettings);
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditAllIndexerSettings(None));
self.app.should_refresh = true;
} else {
radarr_data.indexer_settings = None;
@@ -225,7 +227,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
fn handle_esc(&mut self) {
match self.active_radarr_block {
ActiveRadarrBlock::IndexerSettingsPrompt => {
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
self.app.pop_navigation_stack();
self.app.data.radarr_data.prompt_confirm = false;
self.app.data.radarr_data.indexer_settings = None;
@@ -104,7 +104,7 @@ mod tests {
IndexerSettingsHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -136,7 +136,7 @@ mod tests {
IndexerSettingsHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -201,6 +201,8 @@ mod tests {
}
mod test_handle_home_end {
use std::sync::atomic::Ordering;
use pretty_assertions::assert_eq;
use crate::models::radarr_models::IndexerSettings;
@@ -224,7 +226,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.indexer_settings
@@ -232,7 +234,7 @@ mod tests {
.unwrap()
.whitelisted_hardcoded_subs
.offset
.borrow(),
.load(Ordering::SeqCst),
4
);
@@ -245,7 +247,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.indexer_settings
@@ -253,13 +255,15 @@ mod tests {
.unwrap()
.whitelisted_hardcoded_subs
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
}
mod test_handle_left_right_action {
use std::sync::atomic::Ordering;
use crate::models::radarr_models::IndexerSettings;
use crate::models::servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS;
use crate::models::BlockSelectionState;
@@ -278,7 +282,7 @@ mod tests {
IndexerSettingsHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -288,7 +292,7 @@ mod tests {
IndexerSettingsHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -336,7 +340,7 @@ mod tests {
IndexerSettingsHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -349,7 +353,7 @@ mod tests {
IndexerSettingsHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -377,7 +381,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.indexer_settings
@@ -385,7 +389,7 @@ mod tests {
.unwrap()
.whitelisted_hardcoded_subs
.offset
.borrow(),
.load(Ordering::SeqCst),
1
);
@@ -398,7 +402,7 @@ mod tests {
.handle();
assert_eq!(
*app
app
.data
.radarr_data
.indexer_settings
@@ -406,7 +410,7 @@ mod tests {
.unwrap()
.whitelisted_hardcoded_subs
.offset
.borrow(),
.load(Ordering::SeqCst),
0
);
}
@@ -432,7 +436,7 @@ mod tests {
fn test_edit_indexer_settings_prompt_prompt_decline_submit() {
let mut app = App::default();
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
app
@@ -445,7 +449,7 @@ mod tests {
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -460,7 +464,7 @@ mod tests {
fn test_edit_indexer_settings_prompt_prompt_confirmation_submit() {
let mut app = App::default();
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
app
@@ -474,7 +478,7 @@ mod tests {
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -482,7 +486,7 @@ mod tests {
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditAllIndexerSettings)
Some(RadarrEvent::EditAllIndexerSettings(None))
);
assert!(app.data.radarr_data.indexer_settings.is_some());
assert!(app.should_refresh);
@@ -493,21 +497,21 @@ mod tests {
let mut app = App::default();
app.is_loading = true;
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
app.data.radarr_data.prompt_confirm = true;
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert!(!app.should_refresh);
}
@@ -524,7 +528,7 @@ mod tests {
) {
let mut app = App::default();
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
app.data.radarr_data.selected_block.set_index(index);
@@ -532,7 +536,7 @@ mod tests {
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -547,7 +551,7 @@ mod tests {
let mut app = App::default();
app.is_loading = true;
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
app.data.radarr_data.selected_block.set_index(index);
@@ -555,14 +559,14 @@ mod tests {
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
}
@@ -570,7 +574,7 @@ mod tests {
fn test_edit_indexer_settings_prompt_submit_whitelisted_subtitle_tags_input() {
let mut app = App::default();
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
app.data.radarr_data.selected_block.set_index(7);
@@ -578,7 +582,7 @@ mod tests {
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -597,19 +601,19 @@ mod tests {
app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
app.data.radarr_data.selected_block.set_index(3);
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert!(
app
@@ -624,14 +628,14 @@ mod tests {
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert!(
!app
@@ -651,19 +655,19 @@ mod tests {
app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
app.data.radarr_data.selected_block.set_index(8);
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert!(
app
@@ -678,14 +682,14 @@ mod tests {
IndexerSettingsHandler::with(
&SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert!(
!app
@@ -706,7 +710,7 @@ mod tests {
whitelisted_hardcoded_subs: "Test tags".into(),
..IndexerSettings::default()
});
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.push_navigation_stack(
ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput.into(),
);
@@ -731,7 +735,7 @@ mod tests {
.is_empty());
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
}
@@ -748,14 +752,14 @@ mod tests {
) {
let mut app = App::default();
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.push_navigation_stack(active_radarr_block.into());
IndexerSettingsHandler::with(&SUBMIT_KEY, &mut app, &active_radarr_block, &None).handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
}
}
@@ -775,13 +779,13 @@ mod tests {
let mut app = App::default();
app.is_loading = is_ready;
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
IndexerSettingsHandler::with(
&ESC_KEY,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
)
.handle();
@@ -926,7 +930,7 @@ mod tests {
let handler = IndexerSettingsHandler::with(
&DEFAULT_KEYBINDINGS.esc.key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
);
@@ -941,7 +945,7 @@ mod tests {
let handler = IndexerSettingsHandler::with(
&DEFAULT_KEYBINDINGS.esc.key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
);
@@ -957,7 +961,7 @@ mod tests {
let handler = IndexerSettingsHandler::with(
&DEFAULT_KEYBINDINGS.esc.key,
&mut app,
&ActiveRadarrBlock::IndexerSettingsPrompt,
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
&None,
);
@@ -375,7 +375,7 @@ mod tests {
assert!(app.data.radarr_data.prompt_confirm);
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteIndexer)
Some(RadarrEvent::DeleteIndexer(None))
);
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
}
@@ -577,7 +577,7 @@ mod tests {
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert_eq!(
app.data.radarr_data.selected_block.blocks,
@@ -724,7 +724,7 @@ mod tests {
#[rstest]
fn test_delegates_indexer_settings_blocks_to_indexer_settings_handler(
#[values(
ActiveRadarrBlock::IndexerSettingsPrompt,
ActiveRadarrBlock::AllIndexerSettingsPrompt,
ActiveRadarrBlock::IndexerSettingsAvailabilityDelayInput,
ActiveRadarrBlock::IndexerSettingsConfirmPrompt,
ActiveRadarrBlock::IndexerSettingsMaximumSizeInput,
+2 -2
View File
@@ -121,7 +121,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexersHandler<'a,
ActiveRadarrBlock::DeleteIndexerPrompt => {
let radarr_data = &mut self.app.data.radarr_data;
if radarr_data.prompt_confirm {
radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteIndexer);
radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteIndexer(None));
}
self.app.pop_navigation_stack();
@@ -189,7 +189,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexersHandler<'a,
_ if *key == DEFAULT_KEYBINDINGS.settings.key => {
self
.app
.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
self.app.data.radarr_data.selected_block =
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
}