837330e30a 🎉🍾♻️refactor(core): 重构核心鉴权与缓存机制,引入异步发送队列以提升性能 🚀 (#2088)
* 添加测试插件

* ✨ feat(auth): 添加缓存机制以优化用户和插件数据查询性能

* 🗑️ chore(help): 删除笨蛋检测插件代码

* ✨ feat(bot): 添加对扩展插件的加载支持

* ✨ feat(auth): 优化权限检查和缓存机制,增加用户和插件数据的并行查询

* ✨ feat(cache): 引入运行时缓存机制,优化用户和插件的ban记录管理

* ✨ feat(auth): 更新is_ban函数文档,添加参数和返回值说明

* ```
feat(auth): 使用内存缓存优化权限验证性能

- 移除数据库查询超时控制,改用 LevelUserMemoryCache、BotMemoryCache
  和 PluginLimitMemoryCache 进行缓存查询
- 优化 auth_admin、auth_bot、auth_limit 权限验证逻辑,提升响应速度
- 添加 background 参数支持异步发送权限不足提示消息
- 移除 asyncio 依赖,简化代码结构

fix(auth): 修复限制通知频率控制问题

- 实现限制通知冷却机制,避免重复发送相同限制消息
- 添加 AUTH_LIMIT_NOTICE_CD 配置项,默认值为 2 秒
- 使用 FreqLimiter 控制限制通知发送频率

refactor(models): 增强模型数据变更时的缓存同步

- 在 BotConsole、GroupConsole、LevelUser、PluginLimit 模型的
  create、update_or_create、save、delete 方法中自动更新对应缓存
- 确保数据库和内存缓存数据一致性

docs(ban_console): 修正文档注释并优化日志信息

- 修正 BanConsole 类中方法的文档字符串,使用标准参数和返回值格式
- 优化调试日志信息,使描述更加清晰准确
```

* ✨ feat(auth): 更新Limit类以支持PluginLimitSnapshot,优化限制信息处理

* ✨ feat(bot_manage): 优化Bot控制台初始化逻辑,处理IntegrityError异常

* ✨ feat(mmm1): 新增消息推送功能,支持私聊和群聊事件处理

* ✨ feat(group_member_update): 优化群组成员更新逻辑,增加活动跟踪和消息记录功能

* ✨ feat(mmm1): 删除冗余的消息推送功能代码

* ✨ feat(auth): 优化权限检查逻辑,增加模块阻止功能和缓存处理

* ✨ feat(auth): 优化权限检查逻辑,增加快速ban检测和前置检查功能

* ✨ feat(chat_history): 增强消息处理规则,添加时间间隔限制以防止重复消息
✨ feat(data_source): 引入异步获取群成员信息的功能,优化用户信息更新逻辑

* ✨ feat(send_queue): 添加异步发送队列以优化API调用和速率限制

* ✨ feat(auth): 添加缓存就绪检查以优化权限处理逻辑

* ✨ feat(plugins): 移除不必要的插件加载以简化插件管理

* ✨ feat(group_console): 优化群组获取逻辑,添加缓存检查以提升性能
✨ 只接收缓存完成之后时间的消息

* ✨ feat(auth): 添加异步任务管理和超载检测,优化权限处理逻辑
✨ feat(chat_history): 修改规则函数为异步,提升消息处理效率
✨ feat(group_handle): 增加安全获取群组信息的异步方法,添加超时处理
✨ feat(record_request): 引入安全获取群组信息的异步方法,优化群邀请处理
✨ feat(ban_memory_cache): 增强禁言内存缓存,添加负缓存机制
✨ feat(message_load): 新增消息负载检测功能,优化任务调度
✨ feat(scheduler): 在调度器中集成消息压力检测,优化任务执行
✨ feat(send_queue): 引入异步任务管理,优化发送队列处理

* ✨ feat(auth): 添加对 LevelUserSnapshot 和 BotSnapshot 的支持,优化权限检查逻辑
✨ 格式化

* ✨ feat(db_context): 增强 get_or_create 方法,处理并发创建冲突并回退查询已存在记录

* ✨ feat(bot_manage): 增强 init_bot_console 方法,处理并发创建冲突并回退查询已存在的 bot 数据

* 🚨 auto fix by pre-commit hooks

* ✨ feat(runtime_cache): 优化消息处理逻辑,支持 bytes 和 bytearray 类型的联合判断

* ✨ style(runtime_cache): 格式化代码,优化多行表达式的可读性

* 🚨 auto fix by pre-commit hooks

* ✨ refactor: 优化类型注解,改进群组成员更新逻辑和平台处理
✨ 格式化

* 🚨 auto fix by pre-commit hooks

* ✨ refactor: 优化代码格式,增强可读性并修复类型注解

* 🚨 auto fix by pre-commit hooks

* ✨ refactor: 更新文档注释,增强is_ban函数的可读性

* ✨ refactor: 优化代码结构,移除冗余函数,增强可读性并改进任务调度逻辑

* ✨ refactor: 调整定时任务时间,优化渲染服务的初始化逻辑,增强代码可读性

---------

Co-authored-by: ATTomatoo <1126160939@qq.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-28 10:15:24 +08:00
2021-05-20 18:37:51 +08:00
2024-12-25 12:03:49 +08:00
2021-10-23 15:09:11 +08:00
2022-08-22 20:47:32 +08:00
2025-08-05 19:27:15 +08:00

zhenxun_bot

tencent-qq tencent-qq

绪山真寻 Bot

“真寻是椛椛的好朋友!”

🎉 喜欢真寻,于是真寻就来了!🎉

本项目符合 OneBot 标准,可基于以下项目与机器人框架/平台进行交互

项目地址 平台 核心作者 备注
LLOneBot NTQQ linyuchen 可用
Napcat NTQQ NapNeko 可用
Lagrange.Core NTQQ LagrangeDev/Linwenxuan04 可用
starify Star Trend

🤝 帮助页面

点击展开查看图片 zhenxun_help html_help help

📦 这是一份扩展

1. 体验一下?

这是一个免费的,版本为 dev 的 zhenxun,你可以通过 napcat 或 拉格朗日 以及 matcha 等直接连接用于体验与测试
(球球了测试君!)

Url: ws://test.zhenxun.org:8080/onebot/v11/ws
AccessToken: PUBLIC_ZHENXUN_TEST

注:你无法获得超级用户权限

2. 额外扩展

“不要害怕,你的背后还有千千万万的 伙伴 啊!”

项目名称 主要用途 仓库作者 备注
插件库 插件 zhenxun-org 原 plugins 文件夹插件
插件索引库 插件 zhenxun-org 扩展插件索引库
一键安装 安装 soloxiaoye2022 第三方
WebUi 管理 hibikier 基于真寻 WebApi 的 webui 实现 预览
安卓 app(WebUi) 安装 YuS1aN 第三方

🥰 来点优点? 可爱难道还不够吗

  • 实现了许多功能,且提供了大量功能管理命令,进行了多平台适配,兼容 nb2 商店插件
  • 拥有完善可用的 webui
  • 通过 Config 配置项将所有插件配置统一保存至 config.yaml,利于统一用户修改
  • 方便增删插件,原生 nonebot2 matcher,不需要额外修改,仅仅通过简单的配置属性就可以生成帮助图片和帮助信息
  • 提供了 cd,阻塞,每日次数等限制,仅仅通过简单的属性就可以生成一个限制,例如:PluginCdBlock 等
  • 更多详细请通过 传送门 查看文档!

🐣 小白整合

如果你系统是 Windows 且不想下载 Python
可以使用整合包(Python3.10+zhenxun+webui)

文档地址:整合包文档

下载地址

🛠️ 简单部署

# 获取代码
git clone https://github.com/HibiKier/zhenxun_bot.git

# 进入目录
cd zhenxun_bot

# 安装依赖
pip install poetry      # 安装 poetry
poetry install          # 安装依赖

# 开始运行
poetry run python bot.py

📝 简单配置

Tip

config.yaml 需要启动一次 Bot 后生成

1.在 .env.dev 文件中填写你的机器人配置项

2.在 data/config.yaml 文件中修改你需要修改的插件配置项

数据库地址(DB_URL)配置说明

DB_URL 是基于 Tortoise ORM 的数据库连接字符串,用于指定项目所使用的数据库。以下是 DB_URL 的组成部分以及示例:

格式为: <数据库类型>://<用户名>:<密码>@<主机>:<端口>/<数据库名>?<参数>

  • 数据库类型:表示数据库类型,例如 postgres、mysql、sqlite 等。
  • 用户名:数据库的用户名,例如 root。
  • 密码:数据库的密码,例如 123456。
  • 主机:数据库的主机地址,例如 127.0.0.1(本地)或远程服务器 IP。
  • 端口:数据库的端口号,例如:PostgreSQL:5432, MySQL:3306
  • 数据库名:指定要使用的数据库名称,例如 zhenxun。
  • 参数(可选):用于传递额外的配置,例如字符集设置。

📋 功能列表

Note

真寻原 plugins 插件文件夹已迁移至 插件仓库 ,现在本体仅保留核心功能

内置功能

🔧 基础功能

  • 昵称系统(群与群与私聊分开)
  • 签到/我的签到/好感度排行/好感度总排行(影响色图概率和开箱次数,支持配置)
  • 商店/我的金币/购买道具/使用道具/金币排行(完整的商店添加/购买/使用流程)
  • 查看当前群欢迎消息
  • 个人信息查看(群组内权限,聊天频率等)
  • 消息撤回
  • 功能统计可视化
  • 关于
  • 三种样式的帮助菜单

🛠️ 管理员功能

  • 管理员帮助
  • 更新群组成员信息
  • 95%的群功能开关
  • 查看群内被动技能状态
  • 自定义群欢迎消息(是真寻的不是管家的!)
  • ban/unban(支持设置 ban 时长)= 群组及用户的黑名单
  • 休息吧/醒来(群组内真寻状态)

🧑‍💼 超级用户功能

  • 超级用户帮助
  • 添加/删除权限(是真寻的管理员权限,不是群管理员)
  • 群组管理,退群指令等
  • 广播
  • 自检(检查系统状态)
  • 所有群组/所有好友
  • 退出指定群
  • 更新好友信息/更新群信息
  • 修改群权限
  • 检查更新
  • 重启
  • 添加/删除/查看群白名单
  • 功能开关(更多设置)
  • 功能状态
  • 执行 SQL
  • 重载配置
  • 清理临时数据
  • 增删群认证
  • 同意/拒绝好友/群聊请求
  • 添加/移除/更新插件/插件商店(plugins 库以及扩展库)
  • WebUI API(对真寻前端的支持)

🛡️ 超级用户的被动技能

  • 邀请入群提醒(别人邀请真寻入群,可配置自动同意)

  • 添加好友提醒(别人添加真寻好友,可配置自动同意)

🤖 被动技能

  • 群早晚安

👻 看不见的技能

  • 功能调用统计
  • 聊天记录统计
  • 检测恶意触发命令(将被最高权限 ban 掉 30 分钟,只有最高权限(9 级)可以进行 unban)
  • 自动同意好友/群组请求,加群请求将会提醒管理员,退群提示,加群欢迎等等
  • 群聊时间检测(当群聊最后一人发言时间大于当前 48 小时后将关闭该群所有通知(即被动技能))
  • 群管理员监控,自动为新晋管理员增加权限,为失去群管理员的用户删除权限
  • 群权限系统
  • 定时更新权限
  • 自动配置重载
  • 强制入群保护
  • 自定备份(可配置)
  • 笨蛋检测(当使用功能名称当指令时真寻会跳出来狠狠嘲笑并帮助)

💖 赞助

爱发电

赞助名单

(可以告诉我你的 github 地址,我偷偷换掉 0v|)

Zer 爱发电用户_HTjk shenghuo2 术樱 飞火 shenqi A_Kyuu 疯狂混沌 投冥 茶喵 AemokpaTNR 爱发电用户_wrxn qqw 溫一壺月光下酒 伝木 阿奎 醉梦尘逸 Abc 本喵无敌哒 椎名冬羽 kaito 笑柒 XIAO_Q7 请问一份爱多少钱 咸鱼鱼鱼鱼 Kafka 墨然 爱发电用户_T9e4 笑柒 XIAO_Q7 noahzark 腊条 ze roller 爱发电用户_4jrf 爱发电用户_TBsd 烟寒若雨 ln 爱发电用户_b9S4 爱发电用户_c58s 爱发电用户_eNr9 MangataAkihi 炀 爱发电用户_Bc6j 大魔王 CopilotLaLaLa 嘿小欧 回忆的秋千 十年くん 哇 yajiwa 爆金币...

特别赞助

亚洲最佳CDN、边缘和安全解决方案 - Tencent EdgeOne

本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助

📜 贡献指南

欢迎查看我们的 贡献指南 和 行为守则 以了解如何参与贡献。

❔ 需要帮助?

Tip

发起 issue 前,我们希望你能够阅读过或者了解 提问的智慧

  • 善用搜索引擎
  • 查阅 issue 中是否有类似问题,如果没有请按照模板发起 issue

欢迎前往 issue 中提出你遇到的问题,或者加入我们的 用户群 或 技术群与我们联系

🛠️ 进度追踪

Project zhenxun_bot

🌟 特别感谢

首席设计师:酥酥/coldly-ss

LOGO 设计:FrostN0v0

🙏 感谢

botuniverse / onebot :超棒的机器人协议
Mrs4s / go-cqhttp :cqhttp 的 golang 实现,轻量、原生跨平台.
nonebot / nonebot2 :跨平台 Python 异步机器人框架
Angel-Hair / XUN_Bot :一个基于 NoneBot 和酷 Q 的功能性 QQ 机器人
pcrbot / cappuccilo_plugins :hoshino 插件合集
MeetWq /nonebot-plugin-withdraw :A simple withdraw plugin for Nonebot2
maxesisn / nonebot_plugin_songpicker2 :适用于 nonebot2 的点歌插件
nonepkg / nonebot-plugin-manager :Nonebot Plugin Manager base on import hook
H-K-Y / Genshin_Impact_bot :原神 bot,这是一个基于 nonebot 和 HoshinoBot 的原神娱乐及信息查询插件
NothAmor / nonebot2_luxun_says :基于 nonebot2 机器人框架的鲁迅说插件
Kyomotoi / AnimeThesaurus :一个特二刺螈(文爱)的适用于任何 bot 的词库
Ailitonia / omega-miya :基于 nonebot2 的 qq 机器人
KimigaiiWuyi / GenshinUID :一个基于 HoshinoBot/NoneBot2 的原神 UID 查询插件

📊 统计与活跃贡献者

Performance Stats of HibiKier/zhenxun_bot - Last 28 days Active Contributors of HibiKier/zhenxun_bot - Last 28 days

👨‍💻 开发者

感谢以下开发者对 绪山真寻 Bot 作出的贡献:

contributors

📸 WebUI 界面展示(仅展示默认主题下的 pc 端)

登录界面

x

API 设置

x

仪表盘

x

仪表盘(展开)

x

控制台

x

插件列表

x

插件列表(配置项)

x

插件商店

x

好友/群组管理

x

请求管理

x

数据库管理

x

文件管理

x

文件管理(文本查看)

x

文件管理(图片查看)

x

关于

x

S
Description
基于 Nonebot2 开发,实现多平台适配和多Bot管理的,非常可爱的绪山真寻Bot
Readme AGPL-3.0
465 MiB
Languages
Python 100%