fix(bot): 修复EULA检查循环中未重新加载.env文件的问题
在EULA检查的循环中,程序没有在每次尝试时重新加载`.env`文件。这导致即使用户已经修改了`EULA_CONFIRMED`为`true`,程序也无法读取到最新的配置,从而陷入无限等待的循环。 本次修改通过在循环内部调用`load_dotenv(override=True)`,强制在每次检查前重新加载环境变量,确保能够及时获取用户的确认状态,解决了该问题。
This commit is contained in:
7
bot.py
7
bot.py
@@ -121,7 +121,9 @@ class EULAManager:
|
||||
confirm_logger.critical("请阅读以下文件:")
|
||||
confirm_logger.critical(" - EULA.md (用户许可协议)")
|
||||
confirm_logger.critical(" - PRIVACY.md (隐私条款)")
|
||||
confirm_logger.critical("然后编辑 .env 文件,将 'EULA_CONFIRMED=false' 改为 'EULA_CONFIRMED=true'")
|
||||
confirm_logger.critical(
|
||||
f"然后编辑 .env 文件,将 'EULA_CONFIRMED=false' 改为 'EULA_CONFIRMED=true'"
|
||||
)
|
||||
|
||||
attempts = 0
|
||||
while attempts < MAX_EULA_CHECK_ATTEMPTS:
|
||||
@@ -129,6 +131,9 @@ class EULAManager:
|
||||
await asyncio.sleep(EULA_CHECK_INTERVAL)
|
||||
attempts += 1
|
||||
|
||||
# 重新加载.env文件以获取最新更改
|
||||
load_dotenv(override=True)
|
||||
|
||||
# 从 os.environ 读取,避免重复 I/O
|
||||
eula_confirmed = os.getenv("EULA_CONFIRMED", "").lower()
|
||||
if eula_confirmed == "true":
|
||||
|
||||
Reference in New Issue
Block a user