* feat: 整合开发历史

* codepy安全性升级

* 优化一些东西

* 再次优化

* 更新一下 requirements.txt

* CQ码支持以及视频解析

* hotfix

* 更新DEV readme.md

* feat: 添加Docker沙箱代码执行功能

- 新增Docker沙箱执行环境,提供安全隔离的代码执行能力
- 重构code_py插件,使用Docker容器替代子进程执行
- 添加docker配置项和权限检查功能
- 实现代码执行队列和并发控制
- 新增广播插件,仅限管理员使用
This commit is contained in:
镀铬酸钾
2026-01-06 22:59:50 +08:00
committed by GitHub
parent 5b3cd5bbd0
commit aaf4a896dd
13 changed files with 620 additions and 1160 deletions

View File

@@ -83,7 +83,7 @@ class MessageHandler(BaseHandler):
def command(
self,
name: str,
*names: str,
permission: Optional[Permission] = None,
override_permission_check: bool = False
) -> Callable:
@@ -93,11 +93,12 @@ class MessageHandler(BaseHandler):
def decorator(func: Callable) -> Callable:
if not inspect.iscoroutinefunction(func):
raise SyncHandlerError(f"命令处理器 {func.__name__} 必须是异步函数 (async def).")
self.commands[name] = {
"func": func,
"permission": permission,
"override_permission_check": override_permission_check,
}
for name in names:
self.commands[name] = {
"func": func,
"permission": permission,
"override_permission_check": override_permission_check,
}
return func
return decorator
@@ -137,7 +138,8 @@ class MessageHandler(BaseHandler):
permission_granted = await permission_manager.check_permission(event.user_id, permission)
if not permission_granted and not override_check:
await bot.send(event, f"权限不足,需要 {permission.name} 权限")
permission_name = permission.name if isinstance(permission, Permission) else permission
await bot.send(event, f"权限不足,需要 {permission_name} 权限")
return
await self._run_handler(