:ballon: feat: 使用正则表达式过滤掉 /model 可能暴露的 api_key
Squashed:
更新正则表达式
🎈 auto fixes by pre-commit hooks
Update main.py
Update main.py
chore: bugfixes
This commit is contained in:
@@ -2,6 +2,7 @@ import aiohttp
|
||||
import datetime
|
||||
import builtins
|
||||
import traceback
|
||||
import re
|
||||
import astrbot.api.star as star
|
||||
import astrbot.api.event.filter as filter
|
||||
from astrbot.api.event import AstrMessageEvent, MessageEventResult
|
||||
@@ -13,6 +14,7 @@ from astrbot.core.provider.sources.dify_source import ProviderDify
|
||||
from astrbot.core.utils.io import download_dashboard, get_dashboard_version
|
||||
from astrbot.core.star.star_handler import star_handlers_registry, StarHandlerMetadata
|
||||
from astrbot.core.star.star import star_map
|
||||
from astrbot.core.star.star_manager import PluginManager
|
||||
from astrbot.core.star.filter.command import CommandFilter
|
||||
from astrbot.core.star.filter.command_group import CommandGroupFilter
|
||||
from astrbot.core.star.filter.permission import PermissionTypeFilter
|
||||
@@ -196,7 +198,29 @@ class Main(star.Star):
|
||||
return
|
||||
await self.context._star_manager.turn_on_plugin(oper2)
|
||||
event.set_result(MessageEventResult().message(f"插件 {oper2} 已启用。"))
|
||||
elif oper1 == "get":
|
||||
if not oper2:
|
||||
raise Exception("请输入插件地址。")
|
||||
if not event.is_admin():
|
||||
raise Exception(
|
||||
"改指令限制仅管理员使用,且无法通过 /alter_cmd 更改。"
|
||||
)
|
||||
if not oper2.startswith("http"):
|
||||
oper2 = f"https://github.com/{oper2}"
|
||||
|
||||
logger.info(f"准备从 {oper2} 获取插件。")
|
||||
|
||||
if self.context._star_manager:
|
||||
star_mgr: PluginManager = self.context._star_manager
|
||||
try:
|
||||
await star_mgr.install_plugin(oper2)
|
||||
event.set_result(MessageEventResult().message("获取插件成功。"))
|
||||
except Exception as e:
|
||||
logger.error(f"获取插件失败: {e}")
|
||||
event.set_result(
|
||||
MessageEventResult().message(f"获取插件失败: {e}")
|
||||
)
|
||||
return
|
||||
else:
|
||||
# 获取插件帮助
|
||||
plugin = self.context.get_registered_star(oper1)
|
||||
@@ -497,15 +521,20 @@ UID: {user_id} 此 ID 可用于设置管理员。
|
||||
MessageEventResult().message("未找到任何 LLM 提供商。请先配置。")
|
||||
)
|
||||
return
|
||||
# 定义正则表达式匹配 API 密钥
|
||||
api_key_pattern = re.compile(r"key=[^&'\" ]+")
|
||||
|
||||
if idx_or_name is None:
|
||||
models = []
|
||||
try:
|
||||
models = await self.context.get_using_provider().get_models()
|
||||
except BaseException as e:
|
||||
err_msg = api_key_pattern.sub(
|
||||
"key=***", str(e)
|
||||
)
|
||||
message.set_result(
|
||||
MessageEventResult()
|
||||
.message("获取模型列表失败: " + str(e))
|
||||
.message("获取模型列表失败: " + err_msg)
|
||||
.use_t2i(False)
|
||||
)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user