mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-20 21:18:13 +02:00
22 lines
771 B
Python
22 lines
771 B
Python
"""Shared text helpers for notification copy."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from app.notifications.constants import TITLE_MAX_LENGTH
|
|
|
|
|
|
def truncate(text: str, limit: int) -> str:
|
|
"""Return ``text`` capped at ``limit`` chars, appending an ellipsis if cut."""
|
|
return text[:limit] + "..." if len(text) > limit else text
|
|
|
|
|
|
def format_title(prefix: str, text: str, *, max_length: int = TITLE_MAX_LENGTH) -> str:
|
|
"""Build a notification title that fits ``max_length`` including ``prefix``."""
|
|
budget = max_length - len(prefix)
|
|
if budget <= 0:
|
|
return prefix[:max_length]
|
|
if len(text) <= budget:
|
|
return f"{prefix}{text}"
|
|
if budget <= 3:
|
|
return f"{prefix}{text[:budget]}"
|
|
return f"{prefix}{text[: budget - 3]}..."
|