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("请阅读以下文件:")
|
||||||
confirm_logger.critical(" - EULA.md (用户许可协议)")
|
confirm_logger.critical(" - EULA.md (用户许可协议)")
|
||||||
confirm_logger.critical(" - PRIVACY.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
|
attempts = 0
|
||||||
while attempts < MAX_EULA_CHECK_ATTEMPTS:
|
while attempts < MAX_EULA_CHECK_ATTEMPTS:
|
||||||
@@ -129,6 +131,9 @@ class EULAManager:
|
|||||||
await asyncio.sleep(EULA_CHECK_INTERVAL)
|
await asyncio.sleep(EULA_CHECK_INTERVAL)
|
||||||
attempts += 1
|
attempts += 1
|
||||||
|
|
||||||
|
# 重新加载.env文件以获取最新更改
|
||||||
|
load_dotenv(override=True)
|
||||||
|
|
||||||
# 从 os.environ 读取,避免重复 I/O
|
# 从 os.environ 读取,避免重复 I/O
|
||||||
eula_confirmed = os.getenv("EULA_CONFIRMED", "").lower()
|
eula_confirmed = os.getenv("EULA_CONFIRMED", "").lower()
|
||||||
if eula_confirmed == "true":
|
if eula_confirmed == "true":
|
||||||
|
|||||||
Reference in New Issue
Block a user