feat(cli): Support for listing the available disk space for all provisioned root folders in both Radarr and Sonarr
This commit is contained in:
@@ -24,6 +24,8 @@ pub enum RadarrListCommand {
|
|||||||
Collections,
|
Collections,
|
||||||
#[command(about = "List all active downloads in Radarr")]
|
#[command(about = "List all active downloads in Radarr")]
|
||||||
Downloads,
|
Downloads,
|
||||||
|
#[command(about = "List disk space details for all provisioned root folders in Radarr")]
|
||||||
|
DiskSpace,
|
||||||
#[command(about = "List all Radarr indexers")]
|
#[command(about = "List all Radarr indexers")]
|
||||||
Indexers,
|
Indexers,
|
||||||
#[command(about = "Fetch Radarr logs")]
|
#[command(about = "Fetch Radarr logs")]
|
||||||
@@ -109,6 +111,13 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, RadarrListCommand> for RadarrListCommandH
|
|||||||
.await?;
|
.await?;
|
||||||
serde_json::to_string_pretty(&resp)?
|
serde_json::to_string_pretty(&resp)?
|
||||||
}
|
}
|
||||||
|
RadarrListCommand::DiskSpace => {
|
||||||
|
let resp = self
|
||||||
|
.network
|
||||||
|
.handle_network_event(RadarrEvent::GetDiskSpace.into())
|
||||||
|
.await?;
|
||||||
|
serde_json::to_string_pretty(&resp)?
|
||||||
|
}
|
||||||
RadarrListCommand::Indexers => {
|
RadarrListCommand::Indexers => {
|
||||||
let resp = self
|
let resp = self
|
||||||
.network
|
.network
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ mod tests {
|
|||||||
"blocklist",
|
"blocklist",
|
||||||
"collections",
|
"collections",
|
||||||
"downloads",
|
"downloads",
|
||||||
|
"disk-space",
|
||||||
"indexers",
|
"indexers",
|
||||||
"movies",
|
"movies",
|
||||||
"quality-profiles",
|
"quality-profiles",
|
||||||
@@ -121,6 +122,7 @@ mod tests {
|
|||||||
#[case(RadarrListCommand::Blocklist, RadarrEvent::GetBlocklist)]
|
#[case(RadarrListCommand::Blocklist, RadarrEvent::GetBlocklist)]
|
||||||
#[case(RadarrListCommand::Collections, RadarrEvent::GetCollections)]
|
#[case(RadarrListCommand::Collections, RadarrEvent::GetCollections)]
|
||||||
#[case(RadarrListCommand::Downloads, RadarrEvent::GetDownloads)]
|
#[case(RadarrListCommand::Downloads, RadarrEvent::GetDownloads)]
|
||||||
|
#[case(RadarrListCommand::DiskSpace, RadarrEvent::GetDiskSpace)]
|
||||||
#[case(RadarrListCommand::Indexers, RadarrEvent::GetIndexers)]
|
#[case(RadarrListCommand::Indexers, RadarrEvent::GetIndexers)]
|
||||||
#[case(RadarrListCommand::Movies, RadarrEvent::GetMovies)]
|
#[case(RadarrListCommand::Movies, RadarrEvent::GetMovies)]
|
||||||
#[case(RadarrListCommand::QualityProfiles, RadarrEvent::GetQualityProfiles)]
|
#[case(RadarrListCommand::QualityProfiles, RadarrEvent::GetQualityProfiles)]
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ pub enum SonarrListCommand {
|
|||||||
Blocklist,
|
Blocklist,
|
||||||
#[command(about = "List all active downloads in Sonarr")]
|
#[command(about = "List all active downloads in Sonarr")]
|
||||||
Downloads,
|
Downloads,
|
||||||
|
#[command(about = "List disk space details for all provisioned root folders in Sonarr")]
|
||||||
|
DiskSpace,
|
||||||
#[command(about = "List the episodes for the series with the given ID")]
|
#[command(about = "List the episodes for the series with the given ID")]
|
||||||
Episodes {
|
Episodes {
|
||||||
#[arg(
|
#[arg(
|
||||||
@@ -119,6 +121,13 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrListCommand> for SonarrListCommandH
|
|||||||
.await?;
|
.await?;
|
||||||
serde_json::to_string_pretty(&resp)?
|
serde_json::to_string_pretty(&resp)?
|
||||||
}
|
}
|
||||||
|
SonarrListCommand::DiskSpace => {
|
||||||
|
let resp = self
|
||||||
|
.network
|
||||||
|
.handle_network_event(SonarrEvent::GetDiskSpace.into())
|
||||||
|
.await?;
|
||||||
|
serde_json::to_string_pretty(&resp)?
|
||||||
|
}
|
||||||
SonarrListCommand::Episodes { series_id } => {
|
SonarrListCommand::Episodes { series_id } => {
|
||||||
let resp = self
|
let resp = self
|
||||||
.network
|
.network
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ mod tests {
|
|||||||
"blocklist",
|
"blocklist",
|
||||||
"series",
|
"series",
|
||||||
"downloads",
|
"downloads",
|
||||||
|
"disk-space",
|
||||||
"quality-profiles",
|
"quality-profiles",
|
||||||
"indexers",
|
"indexers",
|
||||||
"queued-events",
|
"queued-events",
|
||||||
@@ -198,6 +199,7 @@ mod tests {
|
|||||||
#[rstest]
|
#[rstest]
|
||||||
#[case(SonarrListCommand::Blocklist, SonarrEvent::GetBlocklist)]
|
#[case(SonarrListCommand::Blocklist, SonarrEvent::GetBlocklist)]
|
||||||
#[case(SonarrListCommand::Downloads, SonarrEvent::GetDownloads)]
|
#[case(SonarrListCommand::Downloads, SonarrEvent::GetDownloads)]
|
||||||
|
#[case(SonarrListCommand::DiskSpace, SonarrEvent::GetDiskSpace)]
|
||||||
#[case(SonarrListCommand::Indexers, SonarrEvent::GetIndexers)]
|
#[case(SonarrListCommand::Indexers, SonarrEvent::GetIndexers)]
|
||||||
#[case(SonarrListCommand::QualityProfiles, SonarrEvent::GetQualityProfiles)]
|
#[case(SonarrListCommand::QualityProfiles, SonarrEvent::GetQualityProfiles)]
|
||||||
#[case(SonarrListCommand::QueuedEvents, SonarrEvent::GetQueuedEvents)]
|
#[case(SonarrListCommand::QueuedEvents, SonarrEvent::GetQueuedEvents)]
|
||||||
|
|||||||
Reference in New Issue
Block a user