Improve display log
This commit is contained in:
parent
bc84eb1c2a
commit
9edb2daf86
@ -4,9 +4,10 @@ use std::io::stdout;
|
|||||||
|
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
|
|
||||||
use crossterm::cursor::{ MoveUp };
|
use crossterm::cursor::{ MoveToPreviousLine };
|
||||||
use crossterm::execute;
|
use crossterm::execute;
|
||||||
use crossterm::terminal::{ Clear, ClearType };
|
use crossterm::terminal::{ Clear, ClearType };
|
||||||
|
use crossterm::style::{ Print };
|
||||||
|
|
||||||
use crate::errors::*;
|
use crate::errors::*;
|
||||||
|
|
||||||
@ -85,58 +86,50 @@ fn print_accumulated_report(statuses: & HashMap<i32, InfoHolder>, msg_queue: &mu
|
|||||||
execute!(
|
execute!(
|
||||||
stdout(),
|
stdout(),
|
||||||
crossterm::cursor::Hide,
|
crossterm::cursor::Hide,
|
||||||
MoveUp(moved_lines)
|
MoveToPreviousLine(moved_lines)
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
for msg in msg_queue.drain(..) {
|
for msg in msg_queue.drain(..) {
|
||||||
|
|
||||||
let ct_now = chrono::Local::now();
|
let ct_now = chrono::Local::now();
|
||||||
|
|
||||||
print!("{} > {}", ct_now.format("%H:%M:%S"), msg);
|
|
||||||
execute!(
|
execute!(
|
||||||
stdout(),
|
stdout(),
|
||||||
Clear(ClearType::UntilNewLine)
|
Print(format!("{} > {}", ct_now.format("%H:%M:%S"), msg)),
|
||||||
|
Clear(ClearType::UntilNewLine),
|
||||||
|
Print("\n")
|
||||||
)?;
|
)?;
|
||||||
println!();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print!("----------------------------------------");
|
|
||||||
execute!(
|
execute!(
|
||||||
stdout(),
|
stdout(),
|
||||||
Clear(ClearType::UntilNewLine)
|
Print(format!("----------------------------------------")),
|
||||||
|
Clear(ClearType::UntilNewLine),
|
||||||
|
Print("\n")
|
||||||
)?;
|
)?;
|
||||||
println!();
|
|
||||||
|
|
||||||
for (_k, v) in statuses {
|
for (_k, v) in statuses {
|
||||||
|
|
||||||
let percent_complete = v.progress as f64 / v.total_size as f64 * 100.0;
|
let percent_complete = v.progress as f64 / v.total_size as f64 * 100.0;
|
||||||
|
|
||||||
print!("Status: {:6.2} mb/s {:5.2}% completed '{}'", v.speed_mbps, percent_complete, v.filename);
|
|
||||||
|
|
||||||
execute!(
|
execute!(
|
||||||
stdout(),
|
stdout(),
|
||||||
Clear(ClearType::UntilNewLine)
|
Print(format!("Status: {:6.2} mb/s {:5.2}% completed '{}'", v.speed_mbps, percent_complete, v.filename)),
|
||||||
|
Clear(ClearType::UntilNewLine),
|
||||||
|
Print("\n")
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
println!("");
|
|
||||||
|
|
||||||
dl_speed_sum += v.speed_mbps;
|
dl_speed_sum += v.speed_mbps;
|
||||||
}
|
}
|
||||||
|
|
||||||
println!();
|
|
||||||
|
|
||||||
if statuses.len() != 0 {
|
|
||||||
print!(" =>> Accumulated download speed: {:6.2} mb/s", dl_speed_sum);
|
|
||||||
}
|
|
||||||
|
|
||||||
execute!(
|
|
||||||
stdout(),
|
|
||||||
Clear(ClearType::UntilNewLine)
|
|
||||||
)?;
|
|
||||||
println!("");
|
|
||||||
|
|
||||||
execute!(
|
execute!(
|
||||||
stdout(),
|
stdout(),
|
||||||
|
Clear(ClearType::CurrentLine),
|
||||||
|
Print("\n"),
|
||||||
|
Print(format!(" =>> Accumulated download speed: {:6.2} mb/s", dl_speed_sum)),
|
||||||
|
Clear(ClearType::UntilNewLine),
|
||||||
|
Print("\n"),
|
||||||
|
Clear(ClearType::FromCursorDown),
|
||||||
crossterm::cursor::Show
|
crossterm::cursor::Show
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
@ -215,10 +208,10 @@ pub async fn watch_and_print_reports(mut receiver: mpsc::UnboundedReceiver<DlRep
|
|||||||
|
|
||||||
execute!(
|
execute!(
|
||||||
stdout(),
|
stdout(),
|
||||||
MoveUp(2)
|
MoveToPreviousLine(2),
|
||||||
|
Print("All done!"),
|
||||||
|
Clear(ClearType::FromCursorDown)
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
println!("All done!");
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user