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
+12 -10
View File
@@ -49,14 +49,14 @@ impl<'a> App<'a> {
.dispatch_network_event(RadarrEvent::GetIndexers.into())
.await;
}
ActiveRadarrBlock::IndexerSettingsPrompt => {
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
self
.dispatch_network_event(RadarrEvent::GetIndexerSettings.into())
.dispatch_network_event(RadarrEvent::GetAllIndexerSettings.into())
.await;
}
ActiveRadarrBlock::TestIndexer => {
self
.dispatch_network_event(RadarrEvent::TestIndexer.into())
.dispatch_network_event(RadarrEvent::TestIndexer(None).into())
.await;
}
ActiveRadarrBlock::TestAllIndexers => {
@@ -72,7 +72,7 @@ impl<'a> App<'a> {
.dispatch_network_event(RadarrEvent::GetQueuedEvents.into())
.await;
self
.dispatch_network_event(RadarrEvent::GetLogs.into())
.dispatch_network_event(RadarrEvent::GetLogs(None).into())
.await;
}
ActiveRadarrBlock::SystemUpdates => {
@@ -82,17 +82,17 @@ impl<'a> App<'a> {
}
ActiveRadarrBlock::AddMovieSearchResults => {
self
.dispatch_network_event(RadarrEvent::SearchNewMovie.into())
.dispatch_network_event(RadarrEvent::SearchNewMovie(None).into())
.await;
}
ActiveRadarrBlock::MovieDetails | ActiveRadarrBlock::FileInfo => {
self
.dispatch_network_event(RadarrEvent::GetMovieDetails.into())
.dispatch_network_event(RadarrEvent::GetMovieDetails(None).into())
.await;
}
ActiveRadarrBlock::MovieHistory => {
self
.dispatch_network_event(RadarrEvent::GetMovieHistory.into())
.dispatch_network_event(RadarrEvent::GetMovieHistory(None).into())
.await;
}
ActiveRadarrBlock::Cast | ActiveRadarrBlock::Crew => {
@@ -102,7 +102,7 @@ impl<'a> App<'a> {
|| movie_details_modal.movie_crew.items.is_empty() =>
{
self
.dispatch_network_event(RadarrEvent::GetMovieCredits.into())
.dispatch_network_event(RadarrEvent::GetMovieCredits(None).into())
.await;
}
_ => (),
@@ -111,7 +111,7 @@ impl<'a> App<'a> {
ActiveRadarrBlock::ManualSearch => match self.data.radarr_data.movie_details_modal.as_ref() {
Some(movie_details_modal) if movie_details_modal.movie_releases.items.is_empty() => {
self
.dispatch_network_event(RadarrEvent::GetReleases.into())
.dispatch_network_event(RadarrEvent::GetReleases(None).into())
.await;
}
_ => (),
@@ -127,7 +127,9 @@ impl<'a> App<'a> {
if self.data.radarr_data.prompt_confirm {
self.data.radarr_data.prompt_confirm = false;
if let Some(radarr_event) = &self.data.radarr_data.prompt_confirm_action {
self.dispatch_network_event((*radarr_event).into()).await;
self
.dispatch_network_event(radarr_event.clone().into())
.await;
self.should_refresh = true;
self.data.radarr_data.prompt_confirm_action = None;
}
+15 -15
View File
@@ -68,7 +68,7 @@ mod tests {
#[tokio::test]
async fn test_dispatch_by_collection_details_block_with_add_movie() {
let (mut app, mut sync_network_rx) = construct_app_unit();
app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddMovie);
app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddMovie(None));
app.data.radarr_data.collections.set_items(vec![Collection {
movies: Some(vec![CollectionMovie::default()]),
@@ -82,7 +82,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::AddMovie.into()
RadarrEvent::AddMovie(None).into()
);
assert!(!app.data.radarr_data.collection_movies.items.is_empty());
assert_eq!(app.tick_count, 0);
@@ -162,17 +162,17 @@ mod tests {
}
#[tokio::test]
async fn test_dispatch_by_indexer_settings_block() {
async fn test_dispatch_by_all_indexer_settings_block() {
let (mut app, mut sync_network_rx) = construct_app_unit();
app
.dispatch_by_radarr_block(&ActiveRadarrBlock::IndexerSettingsPrompt)
.dispatch_by_radarr_block(&ActiveRadarrBlock::AllIndexerSettingsPrompt)
.await;
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetIndexerSettings.into()
RadarrEvent::GetAllIndexerSettings.into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -189,7 +189,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::TestIndexer.into()
RadarrEvent::TestIndexer(None).into()
);
assert_eq!(app.tick_count, 0);
}
@@ -229,7 +229,7 @@ mod tests {
);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetLogs.into()
RadarrEvent::GetLogs(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -263,7 +263,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::SearchNewMovie.into()
RadarrEvent::SearchNewMovie(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -280,7 +280,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetMovieDetails.into()
RadarrEvent::GetMovieDetails(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -297,7 +297,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetMovieDetails.into()
RadarrEvent::GetMovieDetails(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -314,7 +314,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetMovieHistory.into()
RadarrEvent::GetMovieHistory(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -331,7 +331,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetMovieCredits.into()
RadarrEvent::GetMovieCredits(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -354,7 +354,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetMovieCredits.into()
RadarrEvent::GetMovieCredits(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -377,7 +377,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetMovieCredits.into()
RadarrEvent::GetMovieCredits(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);
@@ -418,7 +418,7 @@ mod tests {
assert!(app.is_loading);
assert_eq!(
sync_network_rx.recv().await.unwrap(),
RadarrEvent::GetReleases.into()
RadarrEvent::GetReleases(None).into()
);
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0);