From 20aba06be13be8076eda74a2c0980c3b92dcf369 Mon Sep 17 00:00:00 2001 From: jenstandstad Date: Wed, 13 May 2026 21:30:40 +0200 Subject: [PATCH] Commit fix to time reader --- gnommo/parser.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnommo/parser.py b/gnommo/parser.py index 5648926..c9be5a7 100644 --- a/gnommo/parser.py +++ b/gnommo/parser.py @@ -389,6 +389,7 @@ def parse_timestamp(value: str) -> float: - "2:54" → 2 minutes 54 seconds (174.0) - "1:23:45" → 1 hour 23 minutes 45 seconds - "2:54.5" → 2 minutes 54.5 seconds + - "2m:3.5s" → 2 minutes 3.5 seconds Returns: Time in seconds as a float. @@ -399,6 +400,10 @@ def parse_timestamp(value: str) -> float: value = value.strip() # Remove trailing 's' if present (e.g., "3.5s") + if "h" in value: + value = value.replace("h", ":") + if "m" in value: + value = value.replace("m", ":") if value.endswith("s"): value = value[:-1] @@ -604,9 +609,11 @@ def parse_narration( skip = segment_data.get("skip", default_begin) take = segment_data.get("take") - # Explicit begin/end always override defaults + # Explicit begin/start/end always override defaults if "begin" in segment_data and segment_data["begin"]: skip = parse_timestamp(segment_data["begin"]) + elif "start" in segment_data and segment_data["start"]: + skip = parse_timestamp(segment_data["start"]) if "end" in segment_data and segment_data["end"]: end_time = parse_timestamp(segment_data["end"]) # take = end - begin (duration from begin to end)