Добавление обработки ошибок и валидации

This commit is contained in:
2025-10-18 13:14:23 +03:00
parent ff397dc496
commit 295866ed2d
9 changed files with 51 additions and 19 deletions

View File

@@ -18,6 +18,32 @@ from config import MODULES_DIR
# Загружаем токен бота из .env
load_dotenv()
# Валидация переменных окружения
def validate_env_vars():
"""Проверяет наличие всех необходимых переменных окружения"""
required_vars = {
"BOT_TOKEN": "Токен бота",
"ADMIN_CHAT_ID": "ID админ-чата",
"LOG_THREAD_ID": "ID топика для логов"
}
missing_vars = []
for var_name, description in required_vars.items():
value = os.getenv(var_name)
if not value or value.strip() == "" or value == "...":
missing_vars.append(f"{var_name} ({description})")
if missing_vars:
print("\n❌ ОШИБКА: Не заполнены необходимые переменные окружения в файле .env:")
for var in missing_vars:
print(f"{var}")
print("\nПожалуйста, заполните файл .env на основе .env.example")
sys.exit(1)
# Проверяем переменные окружения
validate_env_vars()
bot = AsyncTeleBot(os.getenv("BOT_TOKEN"), parse_mode="html")
# Загружаем ID админ-чата из .env и инициализируемся для логов в чат
@@ -67,10 +93,6 @@ bot.setup_middleware(UserUpdateMiddleware(db))
# Загружает все модули из директории /modules
async def load_modules():
# Инициализация логирования
setup_logging()
# Переменная для подсчёта модулей
loaded_count = 0
@@ -116,7 +138,7 @@ async def setup_bot_commands():
from telebot.types import BotCommand
commands = [
BotCommand("start", "Начало работы сботом"),
BotCommand("start", "Начало работы с ботом"),
BotCommand("help", "Справка по всем командам"),
BotCommand("log", "Инструкция по созданию лога ошибки"),
BotCommand("ban", "Забанить пользователя. Использование: /ban help"),
@@ -132,6 +154,8 @@ async def setup_bot_commands():
logger.info("Команды бота успешно установлены.")
async def main():
# Инициализация логирования (должна быть первой)
setup_logging()
# Очищаем терминал
os.system('clear')