Add Matrix bot Phase 1: core setup + fun commands
Modular bot using matrix-nio[e2e] with E2EE support, deployed as
systemd service on Synapse LXC. Includes 10 commands: help, ping,
8ball, fortune, flip, roll, random, rps, poll, champion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:42:28 -05:00
|
|
|
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")
|
|
|
|
|
|
2026-02-11 20:52:57 -05:00
|
|
|
# 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", "")
|
|
|
|
|
|
Add Matrix bot Phase 1: core setup + fun commands
Modular bot using matrix-nio[e2e] with E2EE support, deployed as
systemd service on Synapse LXC. Includes 10 commands: help, ping,
8ball, fortune, flip, roll, random, rps, poll, champion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:42:28 -05:00
|
|
|
# Constants
|
|
|
|
|
MAX_INPUT_LENGTH = 500
|
|
|
|
|
MAX_DICE_SIDES = 100
|
|
|
|
|
MAX_DICE_COUNT = 20
|
2026-02-11 20:52:57 -05:00
|
|
|
COOLDOWN_SECONDS = int(os.getenv("COOLDOWN_SECONDS", "120"))
|
|
|
|
|
RCON_TIMEOUT = 5.0
|
|
|
|
|
MIN_USERNAME_LENGTH = 3
|
|
|
|
|
MAX_USERNAME_LENGTH = 16
|
Add Matrix bot Phase 1: core setup + fun commands
Modular bot using matrix-nio[e2e] with E2EE support, deployed as
systemd service on Synapse LXC. Includes 10 commands: help, ping,
8ball, fortune, flip, roll, random, rps, poll, champion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:42:28 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|