Расчет времени для исекших уведомлений для DELETE_KEYS_DELAY

Добавлена format_time_until_deletion для расчета времени при уведомлении когда подписка истекала.
This commit is contained in:
Capybara-z
2025-01-30 21:50:29 +03:00
committed by GitHub
parent 5f43bb6e55
commit 69dcef073e
+37
View File
@@ -9,6 +9,7 @@ from bot import bot
from config import DATABASE_URL
from database import get_servers_from_db
from logger import logger
from datetime import datetime, timedelta
async def get_usd_rate():
@@ -110,3 +111,39 @@ async def handle_error(
except Exception as e:
logger.error(f"Ошибка при обработке ошибки: {e}")
def format_time_until_deletion(seconds: int) -> str:
if seconds <= 0:
return "0 минут"
days = seconds // (3600 * 24)
hours = (seconds % (3600 * 24)) // 3600
minutes = (seconds % 3600 + 59) // 60
parts = []
if days > 0:
if days == 1:
parts.append(f"{days} день")
elif 2 <= days <= 4:
parts.append(f"{days} дня")
else:
parts.append(f"{days} дней")
if hours > 0:
if hours == 1:
parts.append(f"{hours} час")
elif 2 <= hours <= 4:
parts.append(f"{hours} часа")
else:
parts.append(f"{hours} часов")
if minutes > 0 and days == 0:
if minutes == 1:
parts.append("1 минута")
elif 2 <= minutes <= 4:
parts.append(f"{minutes} минуты")
else:
parts.append(f"{minutes} минут")
return " и ".join(parts) if parts else "менее минуты"