diff --git a/src/domain/conversions.rs b/src/domain/conversions.rs index 60f3f71..7255f95 100644 --- a/src/domain/conversions.rs +++ b/src/domain/conversions.rs @@ -22,13 +22,12 @@ pub fn convert_album(detail: AlbumDetail) -> Album { let monitored = monitor_state.is_monitored(); let (have, status, quality) = if let Some(download) = detail.download { - let have = if download.state == "downloaded" { - detail.total_tracks as u16 - } else { - 0 + let have = match download.state.as_str() { + "completed" | "downloaded" => detail.total_tracks as u16, + _ => 0, }; let status = match download.state.as_str() { - "downloaded" => AlbumStatus::Complete, + "completed" | "downloaded" => AlbumStatus::Complete, "downloading" => AlbumStatus::Partial, _ => { if monitored { @@ -38,10 +37,12 @@ pub fn convert_album(detail: AlbumDetail) -> Album { } } }; - let quality = if download.quality.is_empty() { - "—".to_string() - } else { + let quality = if !download.format.is_empty() { + download.format + } else if !download.quality.is_empty() { download.quality + } else { + "—".to_string() }; (have, status, quality) } else { diff --git a/src/proto/music_agregator.v1.rs b/src/proto/music_agregator.v1.rs index ad9edbc..b164079 100644 --- a/src/proto/music_agregator.v1.rs +++ b/src/proto/music_agregator.v1.rs @@ -16,6 +16,10 @@ pub struct IndexerOptions { #[derive(Clone, PartialEq, ::prost::Message)] pub struct MonitorAlbumResponse { #[prost(message, optional, tag = "1")] + pub album: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub artist: ::core::option::Option, + #[prost(message, optional, tag = "3")] pub release: ::core::option::Option, } #[derive(Clone, Copy, PartialEq, ::prost::Message)]