0.3.9.2.a9
config bugfix
This commit is contained in:
parent
e2b6dd667b
commit
1febca2243
40
bot.py
40
bot.py
@ -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; doesn’t trigger auto update)
|
# Major.Enhancement.Minor.Patch.Test (Test is alphanumeric; doesn’t 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)
|
||||||
|
Loading…
Reference in New Issue
Block a user