forked from Muzifs/LGBot
Добавление обработки ошибок и валидации
This commit is contained in:
34
src/main.py
34
src/main.py
@@ -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')
|
||||
|
Reference in New Issue
Block a user