pretty print timestamps
parent
dfbdba81a6
commit
48961fee2a
|
|
@ -126,7 +126,7 @@ fn App(cx: Scope) -> Element {
|
|||
checked: a.has_content,
|
||||
name: "{a.start}..{a.stop}",
|
||||
}
|
||||
"{a.start}..{a.stop}: "
|
||||
"{a.pretty_range()}"
|
||||
br {}
|
||||
img { src: "data:image/png;base64, {a.screenshot}" }
|
||||
}
|
||||
|
|
@ -161,12 +161,33 @@ impl Analysis {
|
|||
|
||||
#[derive(Clone)]
|
||||
struct Analyzed {
|
||||
_start: f32,
|
||||
_stop: f32,
|
||||
start: String,
|
||||
stop: String,
|
||||
screenshot: String,
|
||||
has_content: bool,
|
||||
}
|
||||
|
||||
impl Analyzed {
|
||||
fn pretty_range(&self) -> String {
|
||||
format!("{} - {}", self.pretty_t(self._start), self.pretty_t(self._stop))
|
||||
}
|
||||
|
||||
fn pretty_t(&self, t: f32) -> String {
|
||||
if t < 60.0 {
|
||||
return format!(":{:02}", t as i32);
|
||||
} else if t < 60.0 * 60.0 {
|
||||
return format!("{:02}:{:02}", (t / 60.0) as i32, (t % 60.0) as i32);
|
||||
} else {
|
||||
return format!("{:02}:{:02}:{:02}",
|
||||
(t / 60.0 / 60.0) as i32,
|
||||
(t / 60.0) as i32,
|
||||
(t % 60.0) as i32);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async fn analyze(file: String) -> Analysis {
|
||||
let content_spans = lib::video::inspect_async(&file).await;
|
||||
if content_spans.is_err() {
|
||||
|
|
@ -191,6 +212,8 @@ async fn analyze(file: String) -> Analysis {
|
|||
let screenshot = |content_span: &lib::video::ContentSpan| -> Analyzed {
|
||||
let ts = (content_span.start + content_span.stop) / 2.0;
|
||||
Analyzed {
|
||||
_start: content_span.start,
|
||||
_stop: content_span.stop,
|
||||
start: content_span.start.to_string(),
|
||||
stop: content_span.stop.to_string(),
|
||||
screenshot: match lib::video::screenshot_png(&file, ts) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue