import os from dotenv import load_dotenv load_dotenv() BOT_PROFILE = os.getenv("BOT_PROFILE", "dev").strip().lower() or "dev" if BOT_PROFILE not in {"dev", "economy", "lan"}: raise SystemExit("BOT_PROFILE must be either 'dev', 'economy', or 'lan'.") def _env_int(name: str, default: int) -> int: raw = os.getenv(name) if raw is None or not raw.strip(): return default return int(raw) _LEGACY_DISCORD_TOKEN = os.getenv("DISCORD_TOKEN", "") DISCORD_TOKEN_DEV = os.getenv("DISCORD_TOKEN_DEV", "") DISCORD_TOKEN_ECONOMY = os.getenv("DISCORD_TOKEN_ECONOMY", "") DISCORD_BOT_LAN = os.getenv("DISCORD_BOT_LAN", "") DISCORD_TOKEN = { "dev": DISCORD_TOKEN_DEV, "economy": DISCORD_TOKEN_ECONOMY, "lan": DISCORD_BOT_LAN, }[BOT_PROFILE] or _LEGACY_DISCORD_TOKEN SHEET_ID_DEV = os.getenv("SHEET_ID_DEV", "").strip() SHEET_ID_LAN = os.getenv("SHEET_ID_LAN", "").strip() SHEET_ID = ( SHEET_ID_LAN if BOT_PROFILE == "lan" else SHEET_ID_DEV or os.getenv("SHEET_ID") ) GOOGLE_CREDS_PATH = os.getenv("GOOGLE_CREDS_PATH", "credentials.json") _LEGACY_GUILD_ID = _env_int("GUILD_ID", 0) GUILD_ID_DEV = _env_int("GUILD_ID_DEV", _LEGACY_GUILD_ID) GUILD_ID_ECONOMY = _env_int("GUILD_ID_ECONOMY", _LEGACY_GUILD_ID) GUILD_ID_LAN = _env_int("GUILD_ID_LAN", 0) GUILD_ID = { "dev": GUILD_ID_DEV, "economy": GUILD_ID_ECONOMY, "lan": GUILD_ID_LAN, }[BOT_PROFILE] _LEGACY_BIRTHDAY_CHANNEL_ID = _env_int("BIRTHDAY_CHANNEL_ID", 0) BIRTHDAY_CHANNEL_ID_DEV = _env_int("BIRTHDAY_CHANNEL_ID_DEV", _LEGACY_BIRTHDAY_CHANNEL_ID) BIRTHDAY_CHANNEL_ID_ECONOMY = _env_int("BIRTHDAY_CHANNEL_ID_ECONOMY", 0) BIRTHDAY_CHANNEL_ID = ( BIRTHDAY_CHANNEL_ID_ECONOMY if BOT_PROFILE == "economy" else BIRTHDAY_CHANNEL_ID_DEV ) BIRTHDAY_WINDOW_DAYS = int(os.getenv("BIRTHDAY_WINDOW_DAYS", "7")) BASE_ROLE_IDS: list[int] = [1478304631930228779, 1478302278862766190] PB_URL = os.getenv("PB_URL", "http://127.0.0.1:8090") PB_ADMIN_EMAIL = os.getenv("PB_ADMIN_EMAIL", "") PB_ADMIN_PASSWORD = os.getenv("PB_ADMIN_PASSWORD", "") _LEGACY_PB_COLLECTION = os.getenv("PB_ECONOMY_COLLECTION", "").strip() PB_ECONOMY_COLLECTION_DEV = ( os.getenv("PB_ECONOMY_COLLECTION_DEV", "").strip() or (_LEGACY_PB_COLLECTION if _LEGACY_PB_COLLECTION else "economy_users_dev") ) PB_ECONOMY_COLLECTION_ECONOMY = ( os.getenv("PB_ECONOMY_COLLECTION_ECONOMY", "").strip() or (_LEGACY_PB_COLLECTION if _LEGACY_PB_COLLECTION else "economy_users_prod") ) PB_ECONOMY_COLLECTION_LAN = ( os.getenv("PB_ECONOMY_COLLECTION_LAN", "").strip() or (_LEGACY_PB_COLLECTION if _LEGACY_PB_COLLECTION else "economy_users_lan") ) PB_ECONOMY_COLLECTION = { "dev": PB_ECONOMY_COLLECTION_DEV, "economy": PB_ECONOMY_COLLECTION_ECONOMY, "lan": PB_ECONOMY_COLLECTION_LAN, }[BOT_PROFILE] PB_FIENTA_COLLECTION_LAN = ( os.getenv("PB_FIENTA_COLLECTION_LAN", "").strip() or "fienta_registrations_lan" ) FIENTA_WEBHOOK_SECRET = os.getenv("FIENTA_WEBHOOK_SECRET", "").strip() FIENTA_WEBHOOK_PORT = _env_int("FIENTA_WEBHOOK_PORT", 8090) FIENTA_ADMIN_ALERT_CHANNEL_ID = _env_int("FIENTA_ADMIN_ALERT_CHANNEL_ID", 0)