28 lines
919 B
Python
28 lines
919 B
Python
"""Общие 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"]
|