更新日志
[1.0.0]
- 项目初始版本
- 新增消息类型统一定义
- 新增消息队列逻辑
- 新增活动处理逻辑
- 新增 README
[1.1.0]
- 将 HTQQ 框架完全更换为 LLOneBot 框架,杜绝盗号风险
- 从易语言更换为 python
[1.1.1]
- 新增小程序后端 Flask 服务
- 修改消息类型统一定义
[1.2.0]
- 物资租借小程序正式上线
- 修改小程序管理员认证方式
[1.3.0]
- 将 LLOneBot 更换成 NapCat 框架,因为 NapCat 在获取最后发言时间的更新上优于 LLOneBot(
之后发现是本人问题) - 新增 echo 字段来区分各种消息,统一 ws 收发内容
[1.3.1]
- 新增每日发言统计
[1.4.0]
- 换回 LLOneBot 因为能发送 json 格式消息,用于发送小程序
- 新增 /帮助 指令说明文档
- 新增 /物资借用 功能,返回小程序
- 修改消息格式中的 content,不限制为 str,用于发送消息数组
[1.5.0]
- 使用 JioNLP 来处理时间和时间段
- 修改活动数据库 tasks,可以记录未审核活动便于管理员同时审核多个活动,同时给活动添加了时间段属性
[1.6.0]
- 官方机器人指令过审
- 新增社员信息更新的大部分操作
- 新增社团管家功能
- 修改 botpy 中 post_c2c_file 和 post_group_file 函数使其能上传本地文件
[1.7.0]
- 重构项目,增加了消息处理过程中的异常捕获而不阻塞,重构了 msg,time,robot 的文件路径,log 和 yaml 的路径,增加了部分注释
[1.8.0]
- LR5921 支持识别不同消息格式,包括戳一戳和回应
- 修改 log_event 中消息必须是 str 的限制
[1.9.0]
- 实现了热更新功能,通过 update.yaml 进行不停服更新
- 修改 events 文件夹下面的函数排布
- 修改 events 之后的函数处理格式,只传入 msg 一个参数,不传入状态等
- 修改 msg_process 的引用,由于 eval 动态添加的特性所以需要导入一些看上去用不上的模块
[2.0.0]
- 小程序与后端服务器并发运行
- 修改数据库更新方式为 database 中的相关方式
- 新增下载 flask[async] 包来使用异步数据库更新方法
- 新增 delay 异步延时方法,创建新线程池进行计时,使得同步/异步多次调用同一函数也不会互相阻塞
[2.1.0]
- 日志统一,删除并重写了 qqbot 里面所有的日志,只剩下 app 日志和 robot 日志
- 新增日志调试功能,在 config.yaml 调试列表中新赠值,注释掉对应值即可输出
- 新增 qqbot 连接、LLOneBot 连接、消息队列处理、flask 连接处理中的异常捕获,使得报错不影响运行。
[2.2.0]
- 新增图文消息格式
- 修改所有跟数据库相关的操作,将其整合进 database
- 修改指令格式,统一成 "/+xxx"
[2.3.0]
- 定义文件及文件夹命名规则
[2.3.1]
- 修改数据库获取最大 id(text) 导致添加物资编号只能是最大编号的问题
- 修改小程序打开页面上限过多的问题,更改小程序页面跳转逻辑
[2.3.2]
- 新增了 msg 的属性 info 来取代文件名、回复消息、点赞消息等
- 新增图文消息的判断与处理
- 新增不同表情的识别逻辑
- 修改 LR5921 不启动就无法加载 config 的问题(离谱)
- 修改了图片消息的下载方式,LLOneBot 近期更新,消息类型是 image 时直接提供下载链接而不提供 file_id 进行下载
- 修改文件发送方式,qqbot 严格遵守以图片发送和以文件发送两种格式,可以以这两种方式发送图片
[2.4.0]
- 更新消息种类与处理方式
- 新增官方消息中的替换逻辑,使用[]来包裹表情和表情包,与 LR5921 统一
- 新增了 LR5921 中对于消息段和消息数组的处理函数
- 删除了纯空格消息的处理
[2.5.0]
- 更新消息发送逻辑,目前可以发送图文消息(默认图文),其中所有文件路径都需要绝对路径
- 删除了所有消息格式,因为存在老年大字号模式
[2.6.0]
- 使用black规范重构代码
[2.7.0]
- 使用 NapCat 无头启动器启动 qq ,再也不用打开 qq 了
- napcat.bat 需要加入参数 -q xxxxxx
[2.8.0]
- 使用一体化启动,同时启动service里面的所有异步任务(ws连接和flask连接)和程序(exe和bat)
[2.9.0] - 2024-11-27
- 重构项目结构,把主要功能代码移至 lrobot 中。
水了一堆日志 - 修改 grafana 的 defaults.ini 的 disable_sanitize_html ,改成 true,用于在 grafana 的 text 组件中识别 html
[3.0.0] - 2024-11-29
- 更新了 napcat
- 修改了 napcat 的端口配置
[3.1.0] -2024-12-9
- 完成了日志记录,重写了log,详见 service.md
- 修改了 botpy 导入方式,保留自带的 log
- 新增在 config.yml中定义事件和日志级别
[3.1.1] -2024-12-9
- 修改 config,可以加载所有yml文件,然后使用单例模式进行动态更新
- 新增 main.py 的绝对路径,来让项目代码更健壮,全部使用pathlib而不使用os
[3.1.2] -2024-12-9
- 新增了日志格式定义
[3.2.0] -2024-12-10
- 完成了加密解密流程,二级密钥储存在 .key 里,保证可以正常读取文件,当不存在一级密钥时,secret 里面的文件会被加密
[3.2.1] -2024-12-12
- 修改了异常引用与抛出的机制
[3.2.2] -2025-1-8
- 删除 botpy 文件夹,用包模块替代
[3.3.0] -2025-1-10
- 复习软构和软工
- 新增和删除了一些加密、消息队列、容器、观察者、装饰器相关的处理逻辑
[3.4.0]
- 微信公众号认证失败
- 删除了微信开放平台的逻辑,因为无法接入非认证账号
[3.5.0]
- 豆瓣 apikey 禁止申请,测试几个公开的豆瓣 apikey 后发现无法绑定账号,只能获取少量资讯
[3.6.0] -2025-1-17
- 使用微信 RSS 订阅公众号
[3.7.0] -2025-1-21
- 在cloudDNS上申请了域名
[3.7.1] -2025-1-22
- 尝试数个策略后,最终的方案是国外的免费服务器+国外的域名
[3.8.0] -2025-1-23
- 总结服务器配置流程
[3.9.0] -2025-1-25
- 微信服务器配置完成
- 新增 curl 模拟微信公众号消息的方法
- 修改微信公众号自定义菜单的配置方式
[4.0.0] -2025-1-26
- 服务器开启后存在网上扫描,需要配置处理方式
[4.1.0] -2025-1-28
- 微博添加成功
[4.2.0] -2025-2-3
- 配置好了 gitee,直接在 pycharm 里推送
[4.3.0] -2025-2-5
- log 设置完成,自定义 handle 和 filter 实现各种效果
- 新增关于 to do 代码的规范
[4.3.1] -2025-2-5
- 修改路径相关规范
- 新增日志字数定义
[4.4.0] -2025-2-7
- 修改服务器配置标准流程
[4.5.0] -2025-2-11
- 由于跟主线程 asyncio 冲突,关闭了 flask 的调试模式
[4.6.0] -2025-2-11
- 动态更新配置完成
[4.7.0] -2025-2-12
- botpy 日志更改完成
[4.8.0] -2025-2-13
- 完全抛弃了botpy,采用webhook的方式进行连接(与微博和微信一样)
[4.8.1] -2025-2-14
- 修改了日志格式
[4.9.0] -2025-2-15
- 多图文消息创建多个消息进行处理
- 修改了消息格式规范
[4.9.1] -2025-2-17
- 修改 config 和 log 之间的引用逻辑
- 删除了 filehandle,解决了莫名其妙创建app.log的问题
- 修改了异步同步处理规范
[5.0.0] -2025-2-17
- 重新配置了日志的控制台输出格式
[5.1.0] -2025-2-22
- 重新排版了readme
- 新增许可证
- 新增相关技术,整理了所有的AI对话知识点
- 删除隐私信息,将日志中所有的技术点迁移到相关技术部分
[5.2.0] -2025-3-1
- 放弃使用pytest转向普通的测试模块来编写快速开始脚本
[5.3.1] -2025-*3-4
- 新增各平台对比表格,允许只配置服务器、只使用部分平台
[5.4.0] -2025-3-5
- 使用 fastapi 代替 flask,重新配置相关 logger
- 修改小程序信息处理方式,加入消息队列
[5.4.0] -2025-3-6
- 新增 future 变量管理,修改同步日志线程中更新 future 无法通知等待协程的问题
- 新增在日志输出判断、后端运行停止方面的 future 用法
[5.5.0] -2025-3-8
- 新增部分测试用例
[5.5.1] -2025-3-9
- 修改 napcat 使用方法与相关许可证,移入原先的日志逻辑
[5.6.0] -2025-3-10
- 新增 web 错误捕获函数、异常访问机制、超频访问封禁功能
[5.7.0] -2025-3-11
- 完善数据库分池逻辑
- 修改异常捕获机制(见飞书)
[5.8.0] -2025-3-12
- 加了一点笑话
- 新增 ssh 测试用例
[5.9.0] -2025-3-13
- 所有未完成部分添加 # TODO
- 新增 ssh 自动重连机制
- 新增消息去重机制,防止 qqbot 一条消息推送两次
[6.0.0] - 2025-3-14
- 完成了 vue 部分开发
[6.1.0] - 2025-3-15
- 完成动态模块导入
- 新增 ssh 自动重连上限
[6.2.0] - 2025-3-16
- 消息去重机制验证完成
- 修改消息去重机制,移动到 LR232 接收器内部,将 num 作为唯一键
- 修改了消息初始化机制,避免 content 为空时生成 'None' 字符串
- 修改了动态更新机制,之前为伪动态更新
[6.3.0] -2025-3-17
- 再次接入 napcat,修改方式为 http
- 修改本地 1080 的 socks5 端口为 5923
- 修改消息接收时分类机制,可识别空格消息、纯文件消息
[6.3.1] -2025-3-19
- 修改消息生成方式,一条消息不生成多消息;
- 删除消息引用,改为完全通过 future 引用,消息池每天清理
- 修改消息文件,储存为列表
- 新增 msg 规范:空值尽量储存为 None
[6.4.0] -2025-3-20
- 项目移植:使用 git pull,用 U 盘拷贝 storage 文件夹
- 修改项目的本地 git 记录,使用 storage_tem 来将三个版本合成一个版本
- 删除项目包并重新安装
- 修改小程序和 napcat 的路径至项目外
[6.4.1] -2025-3-22
- 修改并简化了 vue 开发流程
- 修改了 readme 的结构
- 新增本地更新模块
[6.4.1] -2025-3-31
- 测试完大模型函数调用,部署 ollama 的 qwen2.5:14b 模型以及 glm-4-flash 的 api 调用。
- 新增ai对话、天气查询功能
- 修改了 vue 的功能界面
- 修改 command 属性,重新改为 yaml 数据
[6.4.2] -2025-4-1
- 新增愚人节活动
[6.4.3] -2025-4-2
- 新增 clean_ssh 方法防止端口占用
[6.5.0] -2025-4-2
- 服务无法映射到 0.0.0.0 的问题始终没有解决,直接重装
- 新增计时器,没有采用 APScheduler 因为和主任务不太兼容(存在问题无法解决)
[6.6.0] -2025-4-3
- 服务器配置了 Atlas os 系统,运行明显变快;APScheduler 没有问题,主要是 ssh 连接在长时间没有消息的情况下会挂起导致任务阻塞,需要循环一个 5 分钟的请求
- 修改服务器转发命令,使用本地内网 ip 代替 localhost 来保证转发不出现问题
[6.6.1] -2025-4-4
- 修改了服务器转发命令,使用 127.0.0.1 代替 ip 同样可以
[6.6.2] -2025-4-6
- 新增 LR232 发送文件时的超时时间,可能是官方修改短了请求时间(?)
[6.7.0] -2025-4-7
- 统一了基础消息类型及格式
- 新增 B 站和微信的消息处理
[6.7.1] -2025-4-15
- 新增了登录页面,为管理员页面设置 cookie
[6.7.2] -2025-4-18
- 新增了数据库管理页面
- 修改了 execute_query 方法,返回字典
- 修改了 execute_update 方法,返回行 id
[6.8.0] -2025-4-18
- 新增了用户组管理页面
- 修改了 config,反向更新 yaml,解决了了config修改与监听器竞争问题
- 修改数据库表头
[6.9.0] -2025-4-20
- 完成了多格式文件知识库的生成
- 删除了 Fastapi 的 /docs 等路径(太危险了)
[6.9.1] -2025-4-23
- 新增清空代理的装饰器
[6.9.2] -2025-4-30
- 新增 config 多层嵌套访问不报错
[7.0.0] -2025-6-6
- 迁移项目至 docker
- 新增 mysql 和 mongodb 数据库
- 新增 connect 连接方法
- 修改 config 路径使不同容器共享日志和配置
[7.0.1] -2025-6-12
- 尝试合并不同平台消息接收、发送逻辑,失败
[7.0.2] -2025-6-17
- 新增定时任务传入参数
[7.0.3] -2025-6-18
- 新增 b 站消息处理
- 修改消息格式与日志格式至统一
[7.1.0] -2025-6-19
- 修改动态模块导入逻辑
- 修改身份逻辑,将身份作为状态的一种,不强制绑定 LR5921 为主平台
[7.1.1] -2025-6-24
- 修改 config,增加 _copy.yaml模板
- 新增时间轴和泡泡页面
- 修改 napcat 网络方式
- 删除 config 的初始赋值方式并把 set_log 变成类方法以实现 config 的静态引用及写回
- 修改 Observer 为 PollingObserver,因为容器中无法检测文件变更
- 修改消息内容,图片在消息内容里显示为"[文件]"以支持部分消息处理
[7.1.2] -2025-6-28
- 修改 Mysql 的读写方式,保证读不出错
- 修改泡泡页面支持两端操作
- 修改泡泡页面支持同步
[7.1.3] -2025-6-29
- 新增平台绑定功能
- 修改模块热重载,支持错误处理
- 新增 data 部分的动态更新
- 新增入会功能
- 新增 cookie 与管理员操作记录
- 新增网页登录 qq 验证
[7.1.4] -2025-6-30
- 修改 dockerfile 安装 libreoffice
[7.1.5] -2025-7-2
- 新增测试身份与密码设置逻辑
- 新增功能展示面板
- 新增测试员登录逻辑
- 新增测试员与管理员路由逻辑
[7.1.6] -2025-7-3
- 新增数据库备份
- 修改日志数据库格式
- 修改 wiki 页面
- 新增数据库迁移
[7.1.7] -2025-7-5
- 新增面板界面编辑方式
- 删除消息中的空格回车处理
- 新增指令界面滚动条
- 修改面板界面图片和换行格式
[7.1.8] -2025-7-6
- 消息池清理测试完成
[7.1.9] -2025-7-6
- 网盘挂载并整理完成
[7.2.0] -2025-7-6
- 备忘录迁移完成
- 修改网盘视频文件预览方式,支持流式传输
[7.2.1] -2025-7-7
- 完成 LR232 收发测试;发送图片日志测试;事件测试
- 修改日志网页查询的正则判断
- 新增 LR232 返回消息 id 使用 future 和发送*0 获取,用于撤回
- 新增 napcat 快速登录配置(再也不用扫码了)
[7.3.0] -2025-7-9
- 重构代码,编写技术说明
- 修改 message/adapter 的挂载方式,变成编译(fastapi 无法简单的动态更新)
- 删除 LR232 的私聊/群聊 开启/关闭推送消息
[7.3.1] -2025-7-12
- 新增 LR5921 的代码
- 修改消息内容为 Onebot 的消息段格式,防止在内容里发送"[表情:xx]"类似的内容被错误识别
- 修改指令页消息颜色为动态分配
[7.3.2] -2025-7-15
- 修改优化 msg 的种类
- 新增 BILI、WECHAT 的收发形式
- 修改 ssh 重启方式,退出容器 + 自动重启来代替命令
- 新增 B 站直播码获取
- 新增消息、密码验证列表的持久化
- 新增 ctrl+c 信号的处理
- 新增 LR5921 原消息处的字符串转 json 处理
- 修改 LR232 和 WECHAT 的令牌存储方式,不需要每次重启都重新请求令牌
[7.4.0] -2025-8-1
- 项目文档迁移至 github 的 pages 处
- 新增微信公众号的表情解析
- 新增所有格式消息测试案例
[7.4.1] -2025-8-1
- 新增消息回复的文本化解析
- 修改转发消息的格式
[7.4.2] -2025-8-2
- 修改发送商城表情包的格式
- 修改绑定时的状态同步方式
- 新增 LR232 发送 mp3 时的转换
- 新增 WECHAT 发送语音图片视频时的压缩
[7.4.3] -2025-8-3
- 完成消息接收测试
- 修改文档格式与 Readme 格式
- 删除 LR5921 对某些消息的处理