From 69dcef073ee2c4fd0cd43a05972f9797ece8554a Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Thu, 30 Jan 2025 21:50:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D1=81=D1=87=D0=B5=D1=82=20=D0=B2?= =?UTF-8?q?=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B8=D1=81=D0=B5=D0=BA=D1=88=D0=B8=D1=85=20=D1=83=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20DELETE=5FKEYS=5FDELAY?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлена format_time_until_deletion для расчета времени при уведомлении когда подписка истекала. --- handlers/utils.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/handlers/utils.py b/handlers/utils.py index b190e158..34c28d8e 100644 --- a/handlers/utils.py +++ b/handlers/utils.py @@ -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 "менее минуты"