From 57ecdbbda5431051b36efdd8f891561d386062b1 Mon Sep 17 00:00:00 2001 From: Vladless Date: Fri, 25 Oct 2024 20:56:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=BE=D0=B3=D0=B8.=20=D0=A3=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F.=20=D0=A2?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handlers/notifications.py | 29 +++++++++++------------------ handlers/texts.py | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/handlers/notifications.py b/handlers/notifications.py index ff61b7ba..85420255 100644 --- a/handlers/notifications.py +++ b/handlers/notifications.py @@ -7,6 +7,7 @@ from config import DATABASE_URL, ADMIN_USERNAME, ADMIN_PASSWORD from database import get_balance, update_key_expiry, delete_key from client import extend_client_key, delete_client from auth import login_with_credentials +from handlers.texts import KEY_EXPIRY_10H, KEY_EXPIRY_24H, KEY_RENEWED, KEY_RENEWAL_FAILED, KEY_DELETED, KEY_DELETION_FAILED logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) @@ -39,11 +40,9 @@ async def notify_expiring_keys(bot: Bot): email = record['email'] expiry_time = record['expiry_time'] server_id = record['server_id'] + expiry_date = datetime.utcfromtimestamp(expiry_time / 1000).strftime('%Y-%m-%d %H:%M:%S') - message = f"🔔 Уведомление: Ваш ключ для сервера {server_id} истекает через 10 часов.\n" \ - f"Email: {email}\n" \ - f"Дата истечения: {datetime.utcfromtimestamp(expiry_time / 1000).strftime('%Y-%m-%d %H:%M:%S')}" - + message = KEY_EXPIRY_10H.format(server_id=server_id, email=email, expiry_date=expiry_date) await bot.send_message(tg_id, message) logger.info(f"Уведомление отправлено пользователю {tg_id}.") @@ -69,12 +68,7 @@ async def notify_expiring_keys(bot: Bot): expiry_date = datetime.utcfromtimestamp(expiry_time / 1000).strftime('%Y-%m-%d %H:%M:%S') balance = await get_balance(tg_id) - message_24h = f"⏳ Уведомление: Ваш ключ для сервера {server_id} истекает через 24 часа.\n" \ - f"Email: {email}\n" \ - f"Осталось времени: {hours_left} часов\n" \ - f"Дата истечения: {expiry_date}\n" \ - f"Баланс: {balance:.2f} руб." - + message_24h = KEY_EXPIRY_24H.format(server_id=server_id, email=email, hours_left=hours_left, expiry_date=expiry_date, balance=balance) await bot.send_message(tg_id, message_24h) logger.info(f"Уведомление за 24 часа отправлено пользователю {tg_id}.") @@ -94,33 +88,33 @@ async def notify_expiring_keys(bot: Bot): balance = await get_balance(tg_id) server_id = record['server_id'] - logger.info(f"Проверка баланса для клиента {client_id}: {balance}.") + logger.info(f"Проверка баланса для клиента {tg_id}: {balance}.") if balance >= 100: new_expiry_time = int((datetime.utcnow() + timedelta(days=30)).timestamp() * 1000) await update_key_expiry(client_id, new_expiry_time) - logger.info(f"Ключ для клиента {client_id} продлен до {datetime.utcfromtimestamp(new_expiry_time / 1000).strftime('%Y-%m-%d %H:%M:%S')}.") + logger.info(f"Ключ для клиента {tg_id} продлен до {datetime.utcfromtimestamp(new_expiry_time / 1000).strftime('%Y-%m-%d %H:%M:%S')}.") session = await login_with_credentials(server_id, ADMIN_USERNAME, ADMIN_PASSWORD) success = await extend_client_key(session, server_id, tg_id, client_id, email, new_expiry_time) if success: - await bot.send_message(tg_id, "Ваш ключ был продлен на месяц.") + await bot.send_message(tg_id, KEY_RENEWED) logger.info(f"Ключ для пользователя {tg_id} успешно продлен на месяц.") else: - await bot.send_message(tg_id, "Не удалось продлить ключ на панели, обратитесь в поддержку.") + await bot.send_message(tg_id, KEY_RENEWAL_FAILED) logger.error(f"Не удалось продлить ключ для пользователя {tg_id}.") else: await delete_key(client_id) - logger.info(f"Ключ для клиента {client_id} удален из-за недостаточного баланса.") + logger.info(f"Ключ для клиента {tg_id} удален из-за недостаточного баланса.") session = await login_with_credentials(server_id, ADMIN_USERNAME, ADMIN_PASSWORD) success = await delete_client(session, server_id, client_id) if success: - await bot.send_message(tg_id, "Ваш ключ был удален из-за недостаточного баланса.") + await bot.send_message(tg_id, KEY_DELETED) logger.info(f"Ключ для пользователя {tg_id} удален.") else: - await bot.send_message(tg_id, "Не удалось удалить ключ с панели, обратитесь в поддержку.") + await bot.send_message(tg_id, KEY_DELETION_FAILED) logger.error(f"Не удалось удалить ключ для пользователя {tg_id}.") finally: @@ -128,4 +122,3 @@ async def notify_expiring_keys(bot: Bot): logger.info("Соединение с базой данных закрыто.") except Exception as e: logger.error(f"Ошибка при отправке уведомлений: {e}") - diff --git a/handlers/texts.py b/handlers/texts.py index c57f4367..11d04a3e 100644 --- a/handlers/texts.py +++ b/handlers/texts.py @@ -68,6 +68,21 @@ INSTRUCTIONS = ( "💬 Если у вас возникнут вопросы, не стесняйтесь обращаться в [поддержку](https://t.me/solonet_sup)." ) +KEY_EXPIRY_10H = "🔔 Уведомление: Ваш ключ для сервера {server_id} истекает через 10 часов.\n" \ + "Email: {email}\n" \ + "Дата истечения: {expiry_date}" + +KEY_EXPIRY_24H = "⏳ Уведомление: Ваш ключ для сервера {server_id} истекает через 24 часа.\n" \ + "Email: {email}\n" \ + "Осталось времени: {hours_left} часов\n" \ + "Дата истечения: {expiry_date}\n" \ + "Баланс: {balance:.2f} руб." + +KEY_RENEWED = "Ваш ключ был продлен на месяц." +KEY_RENEWAL_FAILED = "Не удалось продлить ключ на панели, обратитесь в поддержку." +KEY_DELETED = "Ваш ключ был удален из-за недостаточного баланса." +KEY_DELETION_FAILED = "Не удалось удалить ключ с панели, обратитесь в поддержку." + def key_message_success(connection_link, remaining_time_message): key_message = ( "✅ Ключ успешно создан:\n"