feat(readarr): fetch Readarr disk space and expose it on the CLI

Add ReadarrEvent::GetDiskSpace, mapped to GET /diskspace, and
get_readarr_diskspace, which stores the result on ReadarrData for the
root folder and system views.

Surface it as `managarr readarr list disk-space`, matching the other
three servarrs.

Readarr returns a label field on some records that DiskSpace does not
model; serde drops it, so the CLI prints only the path and the free and
total space, as it does for the other three servarrs.
This commit is contained in:
Dark-Alex-17 committed 2026-08-20 15:49:56 -06:00
1 parent d8f171ec6f
commit 520b422dcc
7 files changed
+242 -2

No files matched your search

+6
View File
@@ -13,6 +13,7 @@ mod readarr_network_tests;
#[derive(Debug, Eq, PartialEq, Clone)]
pub enum ReadarrEvent {
GetDiskSpace,
GetStatus,
HealthCheck,
}
@@ -20,6 +21,7 @@ pub enum ReadarrEvent {
impl NetworkResource for ReadarrEvent {
fn resource(&self) -> &'static str {
match &self {
ReadarrEvent::GetDiskSpace => "/diskspace",
ReadarrEvent::HealthCheck => "/health",
ReadarrEvent::GetStatus => "/system/status",
}
@@ -38,6 +40,10 @@ impl Network<'_, '_> {
readarr_event: ReadarrEvent,
) -> Result<ReadarrSerdeable> {
match readarr_event {
ReadarrEvent::GetDiskSpace => self
.get_readarr_diskspace()
.await
.map(ReadarrSerdeable::from),
ReadarrEvent::GetStatus => self.get_readarr_status().await.map(ReadarrSerdeable::from),
ReadarrEvent::HealthCheck => self
.get_readarr_healthcheck()