Readable

WordPress 文章自动推送插件 – 完整使用教程

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

功能特性

  • 📰 新文章推送:当 WordPress 发布新文章时,自动推送到指定 QQ 群聊
  • 🔄 文章更新推送:当 WordPress 文章更新时,自动推送到指定 QQ 群聊
  • 👤 新用户注册推送:当 WordPress 有新用户注册时,自动推送到指定 QQ 群聊
  • 🎯 支持私聊推送:可以将文章推送到指定 QQ 用户
  • ⏰ 定时检查:定期检查 WordPress 网站的更新
  • 📝 文本消息格式:所有推送均使用清晰的文本格式

安装方法

方法一:通过 Koishi 插件市场

  1. 在 Koishi 控制台中打开「插件市场」
  2. 搜索「wordpress-notifier」
  3. 点击「安装」按钮

方法二:通过 npm 安装

npm install koishi-plugin-wordpress-notifier

配置选项

基本配置

  • wordpressUrl:WordPress 网站地址(必填)
  • apiEndpoint:REST API 端点,默认 /wp-json/wp/v2
  • authType:认证方式,可选 nonebasicapplication-password,默认 none
  • username:认证用户名(当 authType 不为 none 时必填)
  • password:认证密码(当 authType 不为 none 时必填)

推送配置

  • checkInterval:检查间隔(分钟),默认 30,范围 5-1440
  • enableAutoPush:自动推送开关,默认 true
  • enableUpdatePush:文章更新推送开关,默认 true
  • enableUserRegisterPush:新用户注册推送开关,默认 false
  • defaultGroups:默认推送群聊列表,格式为字符串数组
  • allowAtAll:是否允许@全体成员,默认 false

其他配置

  • messageType:消息类型,可选 textcard,默认 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: 请检查以下几点:

  1. WordPress 网站地址是否正确
  2. WordPress REST API 是否可访问
  3. QQ 群聊 ID 是否正确
  4. 机器人是否在群聊中且有发送消息的权限
  5. 网络连接是否稳定

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:负责定时检查

推送逻辑

  1. 定时检查 WordPress 网站的更新
  2. 当检测到新文章、文章更新或新用户注册时
  3. 根据配置推送到指定 QQ 群聊或用户
  4. 使用文本格式发送通知

版本历史

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

相关链接

安装(Install)

npm i koishi-plugin-wordpress-notifier

Comments

Discussion

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注