From 48961fee2ae31c0578aaefcd01edc9b76719cb19 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Thu, 28 Dec 2023 21:57:05 -0500 Subject: [PATCH] pretty print timestamps --- src/src/main.rs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/src/main.rs b/src/src/main.rs index 18ffa21..f115973 100644 --- a/src/src/main.rs +++ b/src/src/main.rs @@ -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) {