From b58079d86f6b035bc4b6484e24f9ee403e6c92d2 Mon Sep 17 00:00:00 2001 From: Vladless Date: Mon, 2 Dec 2024 04:58:14 +0300 Subject: [PATCH] Clusters on/off in config --- handlers/profile.py | 2 +- servers.py | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/handlers/profile.py b/handlers/profile.py index 2b296c73..f93bf35a 100644 --- a/handlers/profile.py +++ b/handlers/profile.py @@ -5,7 +5,7 @@ from aiogram.fsm.context import FSMContext from aiogram.types import BufferedInputFile, InlineKeyboardButton from aiogram.utils.keyboard import InlineKeyboardBuilder -from config import RENEWAL_PLANS, NEWS_MESSAGE +from config import NEWS_MESSAGE, RENEWAL_PLANS from database import get_balance, get_key_count, get_referral_stats from handlers.texts import get_referral_link, invite_message_send, profile_message_send diff --git a/servers.py b/servers.py index 99baf6b0..a304aa0f 100644 --- a/servers.py +++ b/servers.py @@ -1,20 +1,30 @@ import asyncpg -from config import CLUSTERS, DATABASE_URL # Импортируем конфиг с серверами +from config import DATABASE_URL from logger import logger +try: + from config import CLUSTERS +except ImportError: + CLUSTERS = None + logger.warning("Переменная CLUSTERS не найдена в конфигурации. Добавьте сервера через админ-панель!") + async def sync_servers_with_db(): """ Синхронизирует сервера из конфигурации CLUSTERS с базой данных. + Если CLUSTERS не найден, синхронизация не будет выполнена. """ + if CLUSTERS is None: + logger.info("Конфигурация CLUSTERS не найдена. Синхронизация не будет выполнена.") + return + try: conn = await asyncpg.connect(DATABASE_URL) logger.info("Подключение к базе данных для синхронизации серверов успешно.") for cluster_name, servers in CLUSTERS.items(): for server_key, server_info in servers.items(): - # Проверяем, существует ли сервер в базе данных exists = await conn.fetchval( """ SELECT 1 FROM servers @@ -24,7 +34,6 @@ async def sync_servers_with_db(): server_info["name"], ) - # Если сервера нет, добавляем его if not exists: await conn.execute( """ @@ -44,4 +53,5 @@ async def sync_servers_with_db(): except Exception as e: logger.error(f"Ошибка при синхронизации серверов: {e}") finally: - await conn.close() + if 'conn' in locals(): + await conn.close()