"""Общие runtime-данные процесса бота. Используется для событий аналитики (``bot_start``/``bot_stop``/``bot_alive``) и ежечасного пинга «бот живой» в чат логов. """ from __future__ import annotations import time #: Момент запуска процесса (монотонные секунды). STARTED_AT = time.monotonic() def uptime_seconds() -> int: """Сколько секунд работает процесс бота.""" return int(time.monotonic() - STARTED_AT) def uptime_human() -> str: """Аптайм в виде ``3ч 05м`` или ``12м`` (для уведомлений).""" hours, remainder = divmod(uptime_seconds(), 3600) minutes = remainder // 60 return f"{hours}ч {minutes:02d}м" if hours else f"{minutes}м" __all__ = ["STARTED_AT", "uptime_human", "uptime_seconds"]