feat: optimize format_duration

This commit is contained in:
2025-12-07 21:34:16 +01:00
parent 1a1fee0984
commit 41f5183653

View File

@@ -134,23 +134,20 @@ class LibraryClient:
def format_duration( def format_duration(
value: int | None, unit: str = "minutes", default_none: str | None = None value: int | None, unit: str = "minutes", default_none: str | None = None
) -> str | None: ) -> str | None:
"""Format duration value into human-readable string.""" """Format duration value into a human-readable string."""
if value is None or value <= 0: if value is None or value <= 0:
return default_none return default_none
if unit == "seconds":
total_minutes = int(value) // 60
else:
total_minutes = int(value) total_minutes = int(value)
if unit == "seconds":
total_minutes //= 60
if total_minutes < 60: hours, minutes = divmod(total_minutes, 60)
return f"{total_minutes} minute{'s' if total_minutes != 1 else ''}"
hours = total_minutes // 60 parts = []
mins = total_minutes % 60 if hours:
if mins == 0: parts.append(f"{hours} hour{'s' if hours != 1 else ''}")
return f"{hours} hour{'s' if hours != 1 else ''}" if minutes:
return ( parts.append(f"{minutes} minute{'s' if minutes != 1 else ''}")
f"{hours} hour{'s' if hours != 1 else ''} "
f"{mins} minute{'s' if mins != 1 else ''}" return " ".join(parts) if parts else default_none
)