Updated Ratatui, created custom deserialization logic for i64s to make life easier, and used string interpolation where possible to reduce the lines needed to write log messages or create formatted text

This commit is contained in:
2023-09-07 17:20:38 -06:00
parent e13d1ece58
commit b16a58deae
43 changed files with 426 additions and 536 deletions
@@ -83,8 +83,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for CollectionDetailsHan
.radarr_data
.collection_movies
.current_selection()
.tmdb_id
.clone();
.tmdb_id;
if self
.app
@@ -225,7 +225,7 @@ mod tests {
mod test_handle_key_char {
use bimap::BiMap;
use pretty_assertions::{assert_eq, assert_str_eq};
use serde_json::Number;
use strum::IntoEnumIterator;
use crate::models::radarr_models::{Collection, MinimumAvailability};
@@ -796,7 +796,7 @@ mod tests {
mod test_handle_key_char {
use bimap::BiMap;
use pretty_assertions::{assert_eq, assert_str_eq};
use serde_json::Number;
use strum::IntoEnumIterator;
use crate::models::radarr_models::MinimumAvailability;
@@ -336,8 +336,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for AddMovieHandler<'a,
.as_ref()
.unwrap()
.current_selection()
.tmdb_id
.clone();
.tmdb_id;
if self
.app
@@ -464,18 +464,11 @@ fn sort_releases_by_selected_field(
) -> Vec<Release> {
let cmp_fn: fn(&Release, &Release) -> Ordering = match field {
ReleaseField::Source => |release_a, release_b| release_a.protocol.cmp(&release_b.protocol),
ReleaseField::Age => |release_a, release_b| release_a.age.as_u64().cmp(&release_b.age.as_u64()),
ReleaseField::Age => |release_a, release_b| release_a.age.cmp(&release_b.age),
ReleaseField::Rejected => |release_a, release_b| release_a.rejected.cmp(&release_b.rejected),
ReleaseField::Title => |release_a, release_b| release_a.title.text.cmp(&release_b.title.text),
ReleaseField::Indexer => |release_a, release_b| release_a.indexer.cmp(&release_b.indexer),
ReleaseField::Size => |release_a, release_b| {
release_a
.size
.as_u64()
.as_ref()
.unwrap()
.cmp(release_b.size.as_u64().as_ref().unwrap())
},
ReleaseField::Size => |release_a, release_b| release_a.size.cmp(&release_b.size),
ReleaseField::Peers => |release_a, release_b| {
let default_number = Number::from(i64::MAX);
let seeder_a = release_a
@@ -1112,10 +1112,10 @@ mod tests {
fn release_vec() -> Vec<Release> {
let release_a = Release {
protocol: "Protocol A".to_owned(),
age: Number::from(1),
age: 1,
title: HorizontallyScrollableText::from("Title A"),
indexer: "Indexer A".to_owned(),
size: Number::from(1),
size: 1,
rejected: true,
seeders: Some(Number::from(1)),
languages: Some(vec![Language {
@@ -1130,10 +1130,10 @@ mod tests {
};
let release_b = Release {
protocol: "Protocol B".to_owned(),
age: Number::from(2),
age: 2,
title: HorizontallyScrollableText::from("Title B"),
indexer: "Indexer B".to_owned(),
size: Number::from(2),
size: 2,
rejected: false,
seeders: Some(Number::from(2)),
languages: Some(vec![Language {
@@ -1148,10 +1148,10 @@ mod tests {
};
let release_c = Release {
protocol: "Protocol C".to_owned(),
age: Number::from(3),
age: 3,
title: HorizontallyScrollableText::from("Title C"),
indexer: "Indexer C".to_owned(),
size: Number::from(3),
size: 3,
rejected: false,
seeders: None,
languages: None,
@@ -17,7 +17,7 @@ mod utils {
radarr_data.movies.set_items(vec![Movie {
path: "/nfs/movies/Test".to_owned().into(),
monitored: true,
quality_profile_id: Number::from(2222),
quality_profile_id: 2222,
minimum_availability: MinimumAvailability::Released,
tags: vec![Number::from(1)],
..Movie::default()
@@ -133,7 +133,7 @@ mod utils {
root_folder_path: "/nfs/movies/Test".to_owned().into(),
monitored: true,
search_on_add: true,
quality_profile_id: Number::from(2222),
quality_profile_id: 2222,
minimum_availability: MinimumAvailability::Released,
..Collection::default()
}]);