import os import logging from dotenv import load_dotenv load_dotenv() # Required MATRIX_HOMESERVER = os.getenv("MATRIX_HOMESERVER", "https://matrix.lotusguild.org") MATRIX_USER_ID = os.getenv("MATRIX_USER_ID", "@lotusbot:matrix.lotusguild.org") MATRIX_ACCESS_TOKEN = os.getenv("MATRIX_ACCESS_TOKEN", "") MATRIX_DEVICE_ID = os.getenv("MATRIX_DEVICE_ID", "") # Bot settings BOT_PREFIX = os.getenv("BOT_PREFIX", "!") ADMIN_USERS = [u.strip() for u in os.getenv("ADMIN_USERS", "").split(",") if u.strip()] LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") # Integrations OLLAMA_URL = os.getenv("OLLAMA_URL", "http://10.10.10.157:11434") OLLAMA_MODEL = os.getenv("OLLAMA_MODEL", "lotusllm") MINECRAFT_RCON_HOST = os.getenv("MINECRAFT_RCON_HOST", "10.10.10.67") MINECRAFT_RCON_PORT = int(os.getenv("MINECRAFT_RCON_PORT", "25575")) MINECRAFT_RCON_PASSWORD = os.getenv("MINECRAFT_RCON_PASSWORD", "") # Constants MAX_INPUT_LENGTH = 500 MAX_DICE_SIDES = 100 MAX_DICE_COUNT = 20 COOLDOWN_SECONDS = int(os.getenv("COOLDOWN_SECONDS", "120")) RCON_TIMEOUT = 5.0 MIN_USERNAME_LENGTH = 3 MAX_USERNAME_LENGTH = 16 class ConfigValidator: REQUIRED = ["MATRIX_HOMESERVER", "MATRIX_USER_ID", "MATRIX_ACCESS_TOKEN", "MATRIX_DEVICE_ID"] @classmethod def validate(cls): errors = [] for var in cls.REQUIRED: if not os.getenv(var): errors.append(f"Missing required: {var}") return errors