0.3.9.2.a9

config bugfix
This commit is contained in:
Franz Rolfsvaag 2025-08-10 21:22:41 +02:00
parent e2b6dd667b
commit 1febca2243

40
bot.py
View File

@ -9,7 +9,7 @@ from modules.common.boot_notice import post_boot_notice
# Version consists of: # Version consists of:
# Major.Enhancement.Minor.Patch.Test (Test is alphanumeric; doesnt trigger auto update) # Major.Enhancement.Minor.Patch.Test (Test is alphanumeric; doesnt trigger auto update)
VERSION = "0.3.9.2.a8" VERSION = "0.3.9.2.a9"
# ---------- Env loading ---------- # ---------- Env loading ----------
@ -50,21 +50,41 @@ if not os.path.exists(DATA_FILE):
bot.data_manager = DataManager(DATA_FILE) bot.data_manager = DataManager(DATA_FILE)
# ---------- Self-check (env-aware via cfg_helper) ---------- # ---------- Self-check: resolve from ENV first, then cfg_helper ----------
def _resolve_channel_id(c, key: str) -> int:
# 1) ENV always wins
env_key = f"SHAI_{key.upper()}"
raw = os.getenv(env_key, "").strip().strip('"').strip("'")
if raw.isdigit():
return int(raw)
# 2) Try cfg_helper (if it happens to know)
try:
v = int(c.int(key, 0))
if v:
return v
except Exception:
pass
# 3) Last resort: legacy bot.config shapes
try:
# bot.config like dict
v = int(getattr(c, "get", lambda *_: 0)(key, 0))
if v:
return v
except Exception:
pass
return 0
async def _guild_selfcheck(g: discord.Guild, c): async def _guild_selfcheck(g: discord.Guild, c):
problems = [] problems = []
def _need_channel(id_key, *perms): def _need_channel(id_key, *perms):
# Use typed accessor; falls back to default=0 if unset/invalid cid = _resolve_channel_id(c, id_key)
cid = 0
try:
cid = int(c.int(id_key, 0))
except Exception:
cid = 0
if not cid: if not cid:
problems.append(f"Missing config key: {id_key}\n") problems.append(f"Missing config key: {id_key}")
return return
ch = g.get_channel(cid) ch = g.get_channel(cid)