45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
|
|
import os
|
|||
|
|
import logging
|
|||
|
|
from dotenv import load_dotenv
|
|||
|
|
|
|||
|
|
load_dotenv()
|
|||
|
|
|
|||
|
|
logger = logging.getLogger(__name__)
|
|||
|
|
|
|||
|
|
BOT_TOKEN = os.getenv("BOT_TOKEN")
|
|||
|
|
ADMIN_ID = int(os.getenv("ADMIN_ID", 0))
|
|||
|
|
|
|||
|
|
if not BOT_TOKEN:
|
|||
|
|
logger.error("❌ BOT_TOKEN не найден в .env!")
|
|||
|
|
if ADMIN_ID == 0:
|
|||
|
|
logger.warning("⚠️ ADMIN_ID не установлен или равен 0!")
|
|||
|
|
|
|||
|
|
# Парсим хосты
|
|||
|
|
HOSTS_RAW = os.getenv("HOSTS", "")
|
|||
|
|
HOSTS_LIST = []
|
|||
|
|
|
|||
|
|
if HOSTS_RAW:
|
|||
|
|
for item in HOSTS_RAW.split(";"):
|
|||
|
|
if item.strip():
|
|||
|
|
try:
|
|||
|
|
parts = item.strip().split(",")
|
|||
|
|
if len(parts) != 5:
|
|||
|
|
logger.warning(f"⚠️ Неверный формат хоста: {item}. Ожидается: имя,ip,порт,логин,путь_к_ключу")
|
|||
|
|
continue
|
|||
|
|
name, ip, port, user, key_path = parts
|
|||
|
|
# Проверяем существование ключа
|
|||
|
|
if not os.path.exists(key_path):
|
|||
|
|
logger.warning(f"⚠️ Файл ключа {key_path} не существует для хоста {name}!")
|
|||
|
|
HOSTS_LIST.append({
|
|||
|
|
"name": name,
|
|||
|
|
"ip": ip,
|
|||
|
|
"port": int(port),
|
|||
|
|
"user": user,
|
|||
|
|
"key_path": key_path
|
|||
|
|
})
|
|||
|
|
logger.info(f"✅ Добавлен хост: {name} ({ip})")
|
|||
|
|
except ValueError as e:
|
|||
|
|
logger.error(f"❌ Ошибка парсинга хоста {item}: {e}")
|
|||
|
|
else:
|
|||
|
|
logger.error("❌ HOSTS не задан в .env!")
|