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