fix: API always returns minuts/hours

This commit is contained in:
2025-11-14 23:50:07 +01:00
parent 6d6a55a78c
commit a33e2997aa

29
main.py
View File

@@ -57,12 +57,12 @@ def format_runtime(minutes):
if minutes is None or minutes == 0: if minutes is None or minutes == 0:
return "Unknown length" return "Unknown length"
minutes = float(minutes) minutes = int(minutes)
if minutes < 60: if minutes < 60:
return f"{int(minutes)} minutes" return f"{minutes} minutes"
hours = int(minutes // 60) hours = minutes // 60
mins = int(minutes % 60) mins = minutes % 60
if mins == 0: if mins == 0:
return f"{hours} hour{'s' if hours != 1 else ''}" return f"{hours} hour{'s' if hours != 1 else ''}"
return f"{hours} hour{'s' if hours != 1 else ''} {mins} minute{'s' if mins != 1 else ''}" return f"{hours} hour{'s' if hours != 1 else ''} {mins} minute{'s' if mins != 1 else ''}"
@@ -130,8 +130,7 @@ def list_library(auth):
"runtime_length", "runtime_length",
"vLength", "vLength",
"length", "length",
"duration", "duration"
"runtime_length_ms"
] ]
for field in runtime_fields: for field in runtime_fields:
@@ -143,22 +142,10 @@ def list_library(auth):
minutes = None minutes = None
if isinstance(runtime, dict): if isinstance(runtime, dict):
if "ms" in runtime: if "min" in runtime:
ms = runtime.get("ms", 0) minutes = int(runtime.get("min", 0))
if ms:
minutes = ms / 60000
elif "min" in runtime:
minutes = runtime.get("min")
else:
display = runtime.get("display") or runtime.get(
"formatted") or runtime.get("value")
if display and isinstance(display, (int, float)):
minutes = display
elif isinstance(runtime, (int, float)): elif isinstance(runtime, (int, float)):
if runtime > 100000: minutes = int(runtime)
minutes = runtime / 60000
else:
minutes = runtime
runtime_str = format_runtime(minutes) runtime_str = format_runtime(minutes)