diff --git a/Cargo.lock b/Cargo.lock index 89b02a4cb71a06d58fa6597cf7b93e7514ac8c60..7679a35cbf9582871ab3c10de679551ebf5b011a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -359,7 +359,6 @@ dependencies = [ name = "duniter-tui" version = "0.1.0" dependencies = [ - "chrono 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "duniter-conf 0.1.0", "duniter-crypto 0.1.2", "duniter-dal 0.1.0", diff --git a/tui/Cargo.toml b/tui/Cargo.toml index d415aca56b67ea5b443aae5bb9bfd35e04210bd7..c3fcd4211ebc7963964a49113b379f98c80bed4a 100644 --- a/tui/Cargo.toml +++ b/tui/Cargo.toml @@ -9,7 +9,6 @@ license = "AGPL-3.0" path = "lib.rs" [dependencies] -chrono = "0.4.2" duniter-conf = { path = "../conf" } duniter-crypto = { path = "../crypto" } duniter-dal = { path = "../dal" } diff --git a/tui/lib.rs b/tui/lib.rs index 55625209f54634d0efeba11bab539af3b06fbeb3..9f4e96bbe5fd81b3cd64fb54d6a5a1ea54874201 100644 --- a/tui/lib.rs +++ b/tui/lib.rs @@ -26,7 +26,6 @@ #[macro_use] extern crate log; -extern crate chrono; extern crate duniter_conf; extern crate duniter_crypto; extern crate duniter_dal; @@ -37,7 +36,6 @@ extern crate duniter_network; extern crate serde_json; extern crate termion; -use chrono::prelude::*; use duniter_crypto::keys::ed25519; use duniter_dal::dal_event::DALEvent; use duniter_message::DuniterMessage; @@ -106,7 +104,7 @@ impl TuiModuleDatas { fn draw_term<W: Write>( &self, stdout: &mut RawTerminal<W>, - start_time: &DateTime<Utc>, + start_time: SystemTime, heads_cache: &HashMap<NodeFullId, NetworkHead>, heads_index: usize, out_connections_status: &HashMap<NodeFullId, Connection>, @@ -190,8 +188,13 @@ impl TuiModuleDatas { ).unwrap(); } else { let mut count_conns = 0; - let conns_index_use = if conns_index > (out_established_conns.len() - 5) { + let max_index = if out_established_conns.len() < 5 { + 0 + } else { out_established_conns.len() - 5 + }; + let conns_index_use = if conns_index > max_index { + max_index } else { conns_index }; @@ -322,11 +325,21 @@ impl TuiModuleDatas { } // Draw footer - let runtime_in_secs = Utc::now().timestamp() - (*start_time).timestamp(); - let runtime_str = - DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(runtime_in_secs, 0), Utc) + let mut runtime_in_secs = SystemTime::now() + .duration_since(start_time) + .expect("Fail to get runtime") + .as_secs(); + let runtime_hours = runtime_in_secs / 3600; + runtime_in_secs -= runtime_hours * 3600; + let runtime_mins = runtime_in_secs / 60; + let runtime_secs = runtime_in_secs % 60; + let runtime_str = format!( + "{:02}:{:02}:{:02}", + runtime_hours, runtime_mins, runtime_secs + ); + /*DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(runtime_in_secs, 0), Utc) .format("%H:%M:%S") - .to_string(); + .to_string();*/ write!( stdout, "{}{}{}runtime : {}", @@ -377,7 +390,7 @@ impl DuniterModule<ed25519::PublicKey, ed25519::KeyPair, DuniterMessage> for Tui main_sender: mpsc::Sender<RooterThreadMessage<DuniterMessage>>, load_conf_only: bool, ) -> Result<(), ModuleInitError> { - let start_time: DateTime<Utc> = Utc::now(); + let start_time = SystemTime::now(); //: DateTime<Utc> = Utc::now(); // load conf let _conf = TuiModuleDatas::parse_tui_conf(module_conf); @@ -445,7 +458,7 @@ impl DuniterModule<ed25519::PublicKey, ed25519::KeyPair, DuniterMessage> for Tui let mut last_draw = SystemTime::now(); tui.draw_term( &mut stdout, - &start_time, + start_time, &tui.heads_cache, tui.heads_index, &tui.connections_status, @@ -520,7 +533,10 @@ impl DuniterModule<ed25519::PublicKey, ed25519::KeyPair, DuniterMessage> for Tui if let Some(conn) = tui.connections_status.get(node_full_id) { if *status == 12 && (*conn).status != 12 { tui.established_conns_count += 1; - } else if *status != 12 && (*conn).status == 12 { + } else if *status != 12 + && (*conn).status == 12 + && tui.established_conns_count > 0 + { tui.established_conns_count -= 1; } }; @@ -641,7 +657,7 @@ impl DuniterModule<ed25519::PublicKey, ed25519::KeyPair, DuniterMessage> for Tui last_draw = now; tui.draw_term( &mut stdout, - &start_time, + start_time, &tui.heads_cache, tui.heads_index, &tui.connections_status,