From 154e49192247da95860242a7adeeb8776f623825 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Thu, 7 Aug 2025 16:00:10 -0600 Subject: [PATCH] fix: Fixed a bug where the Sonarr API was returning empty values for seeders when searching for season releases --- src/ui/radarr_ui/library/movie_details_ui.rs | 13 +++++++++++-- src/ui/sonarr_ui/library/episode_details_ui.rs | 12 ++++++++++-- src/ui/sonarr_ui/library/season_details_ui.rs | 12 ++++++++++-- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/ui/radarr_ui/library/movie_details_ui.rs b/src/ui/radarr_ui/library/movie_details_ui.rs index 50a750e..ac6f1ce 100644 --- a/src/ui/radarr_ui/library/movie_details_ui.rs +++ b/src/ui/radarr_ui/library/movie_details_ui.rs @@ -5,6 +5,7 @@ use ratatui::style::{Style, Stylize}; use ratatui::text::{Line, Span, Text}; use ratatui::widgets::{Cell, Paragraph, Row, Wrap}; use ratatui::Frame; +use serde_json::Number; use crate::app::App; use crate::models::radarr_models::{Credit, MovieHistoryItem, RadarrRelease}; @@ -422,8 +423,16 @@ fn draw_movie_releases(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { let peers = if seeders.is_none() || leechers.is_none() { Text::from("") } else { - let seeders = seeders.clone().unwrap().as_u64().unwrap(); - let leechers = leechers.clone().unwrap().as_u64().unwrap(); + let seeders = seeders + .clone() + .unwrap_or(Number::from(0u64)) + .as_u64() + .unwrap(); + let leechers = leechers + .clone() + .unwrap_or(Number::from(0u64)) + .as_u64() + .unwrap(); decorate_peer_style( seeders, diff --git a/src/ui/sonarr_ui/library/episode_details_ui.rs b/src/ui/sonarr_ui/library/episode_details_ui.rs index 9d08a54..99b1849 100644 --- a/src/ui/sonarr_ui/library/episode_details_ui.rs +++ b/src/ui/sonarr_ui/library/episode_details_ui.rs @@ -429,8 +429,16 @@ fn draw_episode_releases(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { let peers = if seeders.is_none() || leechers.is_none() { Text::from("") } else { - let seeders = seeders.clone().unwrap().as_u64().unwrap(); - let leechers = leechers.clone().unwrap().as_u64().unwrap(); + let seeders = seeders + .clone() + .unwrap_or(Number::from(0u64)) + .as_u64() + .unwrap(); + let leechers = leechers + .clone() + .unwrap_or(Number::from(0u64)) + .as_u64() + .unwrap(); decorate_peer_style( seeders, diff --git a/src/ui/sonarr_ui/library/season_details_ui.rs b/src/ui/sonarr_ui/library/season_details_ui.rs index 5c93a78..35eccc6 100644 --- a/src/ui/sonarr_ui/library/season_details_ui.rs +++ b/src/ui/sonarr_ui/library/season_details_ui.rs @@ -395,8 +395,16 @@ fn draw_season_releases(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { let peers = if seeders.is_none() || leechers.is_none() { Text::from("") } else { - let seeders = seeders.clone().unwrap().as_u64().unwrap(); - let leechers = leechers.clone().unwrap().as_u64().unwrap(); + let seeders = seeders + .clone() + .unwrap_or(Number::from(0u64)) + .as_u64() + .unwrap(); + let leechers = leechers + .clone() + .unwrap_or(Number::from(0u64)) + .as_u64() + .unwrap(); decorate_peer_style( seeders,