feat: Added initial Sonarr CLI support and the initial network handler setup for the TUI

This commit is contained in:
2024-11-10 21:23:55 -07:00
parent b6f5b9d08c
commit 60d61b9e31
28 changed files with 2419 additions and 761 deletions
@@ -0,0 +1,43 @@
use chrono::{DateTime, Utc};
use strum::EnumIter;
use crate::models::{sonarr_models::Series, stateful_table::StatefulTable, Route};
#[cfg(test)]
#[path = "sonarr_data_tests.rs"]
mod sonarr_data_tests;
pub struct SonarrData {
pub version: String,
pub start_time: DateTime<Utc>,
pub series: StatefulTable<Series>,
}
impl Default for SonarrData {
fn default() -> SonarrData {
SonarrData {
version: String::new(),
start_time: DateTime::default(),
series: StatefulTable::default(),
}
}
}
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default, EnumIter)]
pub enum ActiveSonarrBlock {
#[default]
Series,
SeriesSortPrompt,
}
impl From<ActiveSonarrBlock> for Route {
fn from(active_sonarr_block: ActiveSonarrBlock) -> Route {
Route::Sonarr(active_sonarr_block, None)
}
}
impl From<(ActiveSonarrBlock, Option<ActiveSonarrBlock>)> for Route {
fn from(value: (ActiveSonarrBlock, Option<ActiveSonarrBlock>)) -> Route {
Route::Sonarr(value.0, value.1)
}
}