Cleaned up imports a bit and added rustfmt.toml
This commit is contained in:
+46
-53
@@ -1,16 +1,17 @@
|
||||
use std::io;
|
||||
use std::sync::Arc;
|
||||
use std::time::{Duration, Instant};
|
||||
|
||||
use anyhow::Result;
|
||||
use clap::Parser;
|
||||
use crossterm::execute;
|
||||
use crossterm::terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen};
|
||||
use crossterm::terminal::{
|
||||
disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen,
|
||||
};
|
||||
use log::{debug, info};
|
||||
use tokio::sync::{mpsc, Mutex};
|
||||
use tokio::sync::mpsc::Receiver;
|
||||
use tui::Terminal;
|
||||
use tokio::sync::{mpsc, Mutex};
|
||||
use tui::backend::CrosstermBackend;
|
||||
use tui::Terminal;
|
||||
|
||||
use utils::init_logging_config;
|
||||
|
||||
@@ -29,78 +30,70 @@ mod utils;
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(author, version, about, long_about = None)]
|
||||
struct Cli {
|
||||
|
||||
}
|
||||
struct Cli {}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
log4rs::init_config(init_logging_config())?;
|
||||
Cli::parse();
|
||||
log4rs::init_config(init_logging_config())?;
|
||||
Cli::parse();
|
||||
|
||||
let config = confy::load("managarr", "config")?;
|
||||
let (sync_network_tx, sync_network_rx) = mpsc::channel(500);
|
||||
let config = confy::load("managarr", "config")?;
|
||||
let (sync_network_tx, sync_network_rx) = mpsc::channel(500);
|
||||
|
||||
let app = Arc::new(Mutex::new(App::new(
|
||||
sync_network_tx,
|
||||
5000 / 250,
|
||||
config
|
||||
)));
|
||||
let app = Arc::new(Mutex::new(App::new(sync_network_tx, 5000 / 250, config)));
|
||||
|
||||
let app_nw = Arc::clone(&app);
|
||||
let app_nw = Arc::clone(&app);
|
||||
|
||||
std::thread::spawn(move || start_networking(sync_network_rx, &app_nw));
|
||||
std::thread::spawn(move || start_networking(sync_network_rx, &app_nw));
|
||||
|
||||
info!("Checking if Radarr server is up and running...");
|
||||
app.lock().await.dispatch(RadarrEvent::HealthCheck).await;
|
||||
info!("Checking if Radarr server is up and running...");
|
||||
app.lock().await.dispatch(RadarrEvent::HealthCheck).await;
|
||||
|
||||
simple_ui(&app).await?;
|
||||
simple_ui(&app).await?;
|
||||
|
||||
Ok(())
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn start_networking(mut network_rx: Receiver<RadarrEvent>, app: &Arc<Mutex<App>>) {
|
||||
let network = Network::new(reqwest::Client::new(), app);
|
||||
let network = Network::new(reqwest::Client::new(), app);
|
||||
|
||||
while let Some(network_event) = network_rx.recv().await {
|
||||
debug!("Received network event: {:?}", network_event);
|
||||
network.handle_radarr_event(network_event).await;
|
||||
}
|
||||
while let Some(network_event) = network_rx.recv().await {
|
||||
debug!("Received network event: {:?}", network_event);
|
||||
network.handle_radarr_event(network_event).await;
|
||||
}
|
||||
}
|
||||
|
||||
async fn simple_ui(app: &Arc<Mutex<App>>) -> Result<()> {
|
||||
let mut stdout = io::stdout();
|
||||
enable_raw_mode()?;
|
||||
let mut stdout = io::stdout();
|
||||
enable_raw_mode()?;
|
||||
|
||||
execute!(stdout, EnterAlternateScreen)?;
|
||||
let backend = CrosstermBackend::new(stdout);
|
||||
let mut terminal = Terminal::new(backend)?;
|
||||
terminal.clear()?;
|
||||
terminal.hide_cursor()?;
|
||||
execute!(stdout, EnterAlternateScreen)?;
|
||||
let backend = CrosstermBackend::new(stdout);
|
||||
let mut terminal = Terminal::new(backend)?;
|
||||
terminal.clear()?;
|
||||
terminal.hide_cursor()?;
|
||||
|
||||
let input_events = Events::new();
|
||||
let input_events = Events::new();
|
||||
|
||||
loop {
|
||||
let mut app = app.lock().await;
|
||||
terminal.draw(|f| ui(f, &app))?;
|
||||
loop {
|
||||
let mut app = app.lock().await;
|
||||
terminal.draw(|f| ui(f, &app))?;
|
||||
|
||||
match input_events.next()? {
|
||||
InputEvent::KeyEvent(key) => {
|
||||
if key == Key::Char('q') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
InputEvent::Tick => {
|
||||
app.on_tick().await
|
||||
}
|
||||
match input_events.next()? {
|
||||
InputEvent::KeyEvent(key) => {
|
||||
if key == Key::Char('q') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
InputEvent::Tick => app.on_tick().await,
|
||||
}
|
||||
}
|
||||
|
||||
terminal.show_cursor()?;
|
||||
disable_raw_mode()?;
|
||||
execute!(terminal.backend_mut(), LeaveAlternateScreen)?;
|
||||
terminal.show_cursor()?;
|
||||
terminal.show_cursor()?;
|
||||
disable_raw_mode()?;
|
||||
execute!(terminal.backend_mut(), LeaveAlternateScreen)?;
|
||||
terminal.show_cursor()?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user