一个用于将 WordPress 网站的新文章、文章更新和新用户注册推送到 QQ 群聊的 Koishi 插件。

功能特性
- 📰 新文章推送:当 WordPress 发布新文章时,自动推送到指定 QQ 群聊
- 🔄 文章更新推送:当 WordPress 文章更新时,自动推送到指定 QQ 群聊
- 👤 新用户注册推送:当 WordPress 有新用户注册时,自动推送到指定 QQ 群聊
- 🎯 支持私聊推送:可以将文章推送到指定 QQ 用户
- ⏰ 定时检查:定期检查 WordPress 网站的更新
- 📝 文本消息格式:所有推送均使用清晰的文本格式
安装方法
方法一:通过 Koishi 插件市场
- 在 Koishi 控制台中打开「插件市场」
- 搜索「wordpress-notifier」
- 点击「安装」按钮
方法二:通过 npm 安装
npm install koishi-plugin-wordpress-notifier
配置选项
基本配置
- wordpressUrl:WordPress 网站地址(必填)
- apiEndpoint:REST API 端点,默认
/wp-json/wp/v2 - authType:认证方式,可选
none、basic、application-password,默认none - username:认证用户名(当 authType 不为 none 时必填)
- password:认证密码(当 authType 不为 none 时必填)
推送配置
- checkInterval:检查间隔(分钟),默认 30,范围 5-1440
- enableAutoPush:自动推送开关,默认
true - enableUpdatePush:文章更新推送开关,默认
true - enableUserRegisterPush:新用户注册推送开关,默认
false - defaultGroups:默认推送群聊列表,格式为字符串数组
- allowAtAll:是否允许@全体成员,默认
false
其他配置
- messageType:消息类型,可选
text、card,默认text(当前版本默认使用文本格式) - signatureKey:卡片消息签名密钥(当前版本未使用)
使用示例
基本配置示例
{
"wordpressUrl": "https://example.com",
"apiEndpoint": "/wp-json/wp/v2",
"authType": "none",
"checkInterval": 30,
"enableAutoPush": true,
"enableUpdatePush": true,
"enableUserRegisterPush": false,
"defaultGroups": ["123456789", "987654321"],
"allowAtAll": false,
"messageType": "text"
}
启用用户注册推送
{
"wordpressUrl": "https://example.com",
"enableUserRegisterPush": true,
"defaultGroups": ["123456789"]
}
消息格式
新文章推送
📰 新文章推送
标题:[文章标题]
作者:[作者]
发布时间:[发布时间]
摘要:[文章摘要]
阅读全文:[文章链接]
---
🤖 由 WordPress 推送机器人自动发送
文章更新推送
🔄 文章更新通知
标题:[文章标题]
更新时间:[更新时间]
更新内容:[文章摘要]
查看更新:[文章链接]
新用户注册推送
👤 新用户注册通知
用户名:[用户名]
注册时间:[注册时间]
欢迎加入我们的社区!
常见问题
Q: 推送失败怎么办?
A: 请检查以下几点:
- WordPress 网站地址是否正确
- WordPress REST API 是否可访问
- QQ 群聊 ID 是否正确
- 机器人是否在群聊中且有发送消息的权限
- 网络连接是否稳定
Q: 如何获取 WordPress REST API 端点?
A: 默认情况下,WordPress 的 REST API 端点为 /wp-json/wp/v2。如果你的 WordPress 安装了插件或进行了自定义配置,可能需要修改此值。
Q: 如何获取 QQ 群聊 ID?
A: 在 QQ 群聊中,右键点击群聊名称,选择「复制群号」即可。
技术实现
核心服务
- PushService:负责发送推送消息
- WordPressService:负责与 WordPress API 交互
- StorageService:负责数据存储
- CommandService:负责处理命令
- ScheduleService:负责定时检查
推送逻辑
- 定时检查 WordPress 网站的更新
- 当检测到新文章、文章更新或新用户注册时
- 根据配置推送到指定 QQ 群聊或用户
- 使用文本格式发送通知
版本历史
v2.9.4
- 🎉 Bug 修复:修复文章更新检测误判问题,仅使用修改时间判断,避免因哈希值变化导致所有文章被重复推送
- 🚀 性能优化:将文章检查数量从 20 篇减少到 10 篇,减少不必要的检查
- ✨ 功能完善:完整实现新用户注册推送功能
- 📊 用户体验:添加详细的更新检测日志,便于调试和追踪
- 🔧 代码优化:改进更新检测逻辑,使用秒级时间戳比较,避免精度问题
v2.9.3
- 🎉 并发控制:使用 p-limit 替代手动队列,彻底解决线程安全问题
- 🚀 性能优化:添加 10 秒缓存防抖,避免重复请求
- 🔄 智能重试:限制仅 GET 请求重试,防止重复写操作
- 🧹 内存管理:添加定时清理缓存,避免内存堆积
- 🔧 资源清理:完善队列清理,适配热重载
- 📈 监控增强:整合命令次数、请求成功率、响应耗时等统计信息
- 🔍 类型安全:补全 _embedded / error 等 TypeScript 类型
- 🎯 错误体系:自定义 AuthCooldownError,统一错误处理
- 📊 状态命令:增强 wp-status 命令,显示更详细的服务状态
v2.9.2
- 🎉 架构重构:完全重构了定时任务服务,解决了并发风暴问题
- 🛡️ 并发控制:实现了推送任务队列,限制最大并发推送数为 3
- 📊 智能失败统计:重构失败计数逻辑,避免告警风暴
- 🔄 完善更新检测:实现了基于修改时间和哈希值的文章更新检测
- 🎯 竞态条件修复:添加运行标志,防止重复执行和重复推送
- ⚙️ 灵活时间配置:支持自定义推送时间范围
- 🚨 管理员告警:支持将失败告警发送到指定管理员
- 🌍 多平台支持:添加了 Telegram、Discord 等平台的卡片渲染器
- 🔧 资源管理:完善了服务销毁和资源清理逻辑
v2.9.1
- 🎉 正式版本:完全重构了插件架构,提高了代码质量和可维护性
- 📝 统一使用文本格式发送消息
- 🔧 修复数据库配置存储错误
- 🎯 优化推送逻辑,提高可靠性
- 🚀 提升性能和稳定性
- 🔄 专注于核心功能:文章推送、文章更新推送和用户注册推送
v1.1.1
- 📝 统一使用文本格式发送消息
- 🔧 修复数据库配置存储错误
- 🎯 优化推送逻辑,提高可靠性
v1.1.0
- ✨ 新增用户信息更新推送功能
- 📝 统一使用文本格式发送消息
- 🔧 修复数据库配置存储错误
- 🎯 优化推送逻辑,提高可靠性
v1.0.0
- ✨ 初始版本
- 📰 支持新文章推送
- 🔄 支持文章更新推送
- 👤 支持新用户注册推送
- 🎯 支持私聊推送
贡献
欢迎提交 Issue 和 Pull Request 来改进这个插件!
许可证
MIT License
相关链接
- 插件仓库:https://github.com/Lexo0522/koishi-plugin-wordpress-notifier
- Koishi 官方文档:https://koishi.js.org/
- WordPress REST API 文档:https://developer.wordpress.com/rest-api/
安装(Install)
npm i koishi-plugin-wordpress-notifier
Comments
Discussion