fix(danding_api): 从NoneBot2 driver.config读取token

.env 被 NoneBot2 读入 driver.config(小写键名)而非 os.environ,
改用 getattr(driver.config, "danding_api_token") 获取。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-28 12:24:24 +08:00
parent 29ae3695af
commit f67f3ca1d6

View File

@@ -1,28 +1,18 @@
import os
import asyncio
import aiohttp
from nonebot import get_plugin_config
from nonebot import get_plugin_config, get_driver
from .config import Config
from nonebot import logger
plugin_config = get_plugin_config(Config)
# get_plugin_config 不一定读取环境变量,手动兜底
# NoneBot2 把 .env 读入 driver.config 而非 os.environ,手动兜底
_driver_config = get_driver().config
if not plugin_config.Token:
plugin_config.Token = (
os.environ.get("DANDING_API_TOKEN")
or os.environ.get("danding_api_token")
or os.environ.get("TOKEN")
or os.environ.get("token")
or ""
)
logger.debug(f"Token loaded from env: '{plugin_config.Token}'")
# 列出所有 DANDING 相关的环境变量
for k, v in os.environ.items():
if "DANDING" in k.upper() or "TOKEN" in k.upper():
logger.debug(f"ENV: {k}={v}")
plugin_config.Token = getattr(_driver_config, "danding_api_token", "") or os.environ.get("DANDING_API_TOKEN", "")
if not plugin_config.EMAIL_PASSWORD:
plugin_config.EMAIL_PASSWORD = os.environ.get("DANDING_EMAIL_PASSWORD", "")
plugin_config.EMAIL_PASSWORD = getattr(_driver_config, "danding_email_password", "") or os.environ.get("DANDING_EMAIL_PASSWORD", "")
router:dict = {
"在线人数":"bot_online_count",
"添加卡密":"bot_add_kami",