koishi-plugin-wordpress-notifier 2.9.1 → 2.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,7 +9,18 @@
9
9
  - 👤 **新用户注册推送**:当 WordPress 有新用户注册时,自动推送到指定 QQ 群聊
10
10
  - 🎯 **支持私聊推送**:可以将文章推送到指定 QQ 用户
11
11
  - ⏰ **定时检查**:定期检查 WordPress 网站的更新
12
- - 📝 **文本消息格式**:所有推送均使用清晰的文本格式
12
+ - 📝 **多格式消息**:支持文本和卡片两种消息格式
13
+ - 🛡️ **并发控制**:使用 p-limit 实现智能并发控制,避免触发平台频率限制
14
+ - 📊 **失败统计**:精确的失败统计和告警机制
15
+ - 🌍 **平台兼容**:支持 QQ、Telegram、Discord 等多个平台
16
+ - ⚙️ **灵活配置**:支持自定义推送时间范围和管理员告警
17
+ - 🚀 **性能优化**:10秒缓存防抖,避免重复请求
18
+ - 🔄 **智能重试**:仅对 GET 请求进行重试,防止重复写操作
19
+ - 📈 **监控增强**:整合命令次数、请求成功率、响应耗时等统计信息
20
+ - 🧹 **内存管理**:定时清理缓存,避免内存堆积
21
+ - 🔧 **资源清理**:完善队列清理,适配热重载
22
+ - 📋 **命令系统**:支持 wp-xxx 格式的命令,包括文章查询和推送管理
23
+ - 📊 **插件状态**:新增 wp-status 命令,显示详细的服务状态
13
24
 
14
25
  ## 安装方法
15
26
 
@@ -41,8 +52,11 @@ npm install koishi-plugin-wordpress-notifier
41
52
  - **allowAtAll**:是否允许@全体成员,默认 `false`
42
53
 
43
54
  ### 其他配置
44
- - **messageType**:消息类型,可选 `text`、`card`,默认 `text`(当前版本默认使用文本格式)
45
- - **signatureKey**:卡片消息签名密钥(当前版本未使用)
55
+ - **messageType**:消息类型,可选 `text`、`card`,默认 `text`
56
+ - **signatureKey**:卡片消息签名密钥
57
+ - **adminUserId**:管理员用户 ID,用于接收推送失败告警
58
+ - **pushStartTime**:允许推送的开始时间(小时),默认 9
59
+ - **pushEndTime**:允许推送的结束时间(小时),默认 22
46
60
 
47
61
  ## 使用示例
48
62
 
@@ -59,7 +73,10 @@ npm install koishi-plugin-wordpress-notifier
59
73
  "enableUserRegisterPush": false,
60
74
  "defaultGroups": ["123456789", "987654321"],
61
75
  "allowAtAll": false,
62
- "messageType": "text"
76
+ "messageType": "text",
77
+ "adminUserId": "123456789",
78
+ "pushStartTime": 9,
79
+ "pushEndTime": 22
63
80
  }
64
81
  ```
65
82
 
@@ -73,6 +90,36 @@ npm install koishi-plugin-wordpress-notifier
73
90
  }
74
91
  ```
75
92
 
93
+ ## 命令系统
94
+
95
+ ### 文章查询命令
96
+
97
+ - **wp-最新 [数量]**:查看最新文章(默认5篇)
98
+ - 示例:`wp-最新` 或 `wp-最新 10`
99
+
100
+ - **wp-列表 [页码]**:浏览历史文章列表
101
+ - 示例:`wp-列表` 或 `wp-列表 2`
102
+
103
+ - **wp-详情 <文章ID>**:查看指定文章详情
104
+ - 示例:`wp-详情 123`
105
+
106
+ ### 推送管理命令
107
+
108
+ - **wp-开关 [on|off]**:开启/关闭群推送(仅管理员)
109
+ - 示例:`wp-开关 on` 或 `wp-开关 off`
110
+
111
+ - **wp-订阅 [on|off]**:订阅/取消私聊推送
112
+ - 示例:`wp-订阅 on` 或 `wp-订阅 off`
113
+
114
+ - **wp-同步**:手动触发一次推送检查(仅管理员)
115
+ - 示例:`wp-同步`
116
+
117
+ - **wp-状态**:查看插件状态
118
+ - 示例:`wp-状态`
119
+
120
+ - **wp-帮助**:查看详细使用说明
121
+ - 示例:`wp-帮助`
122
+
76
123
  ## 消息格式
77
124
 
78
125
  ### 新文章推送
@@ -158,21 +205,43 @@ npm install koishi-plugin-wordpress-notifier
158
205
 
159
206
  ## 版本历史
160
207
 
161
- ### v2.9.1
162
- - 🎉 **正式版本**:基于 Beta 版本的稳定发布
163
- - 📝 统一使用文本格式发送消息
164
- - 🔧 修复数据库配置存储错误
165
- - 🎯 优化推送逻辑,提高可靠性
166
- - 🚀 提升性能和稳定性
167
- - 🔄 移除用户信息更新推送功能,专注于核心功能
208
+ ### v2.9.4
209
+ - 🎉 **Bug 修复**:修复文章更新检测误判问题,仅使用修改时间判断,避免因哈希值变化导致所有文章被重复推送
210
+ - 🚀 **性能优化**:将文章检查数量从 20 篇减少到 10 篇,减少不必要的检查
211
+ - **功能完善**:完整实现新用户注册推送功能
212
+ - 📊 **用户体验**:添加详细的更新检测日志,便于调试和追踪
213
+ - 🔧 **代码优化**:改进更新检测逻辑,使用秒级时间戳比较,避免精度问题
214
+
215
+ ### v2.9.3
216
+ - 🎉 **并发控制**:使用 p-limit 替代手动队列,彻底解决线程安全问题
217
+ - 🚀 **性能优化**:添加 10 秒缓存防抖,避免重复请求
218
+ - 🔄 **智能重试**:限制仅 GET 请求重试,防止重复写操作
219
+ - 🧹 **内存管理**:添加定时清理缓存,避免内存堆积
220
+ - 🔧 **资源清理**:完善队列清理,适配热重载
221
+ - 📈 **监控增强**:整合命令次数、请求成功率、响应耗时等统计信息
222
+ - 🔍 **类型安全**:补全 _embedded / error 等 TypeScript 类型
223
+ - 🎯 **错误体系**:自定义 AuthCooldownError,统一错误处理
224
+ - 📊 **状态命令**:增强 wp-status 命令,显示更详细的服务状态
225
+
226
+ ### v2.9.2
227
+ - 🎉 **架构重构**:完全重构了定时任务服务,解决了并发风暴问题
228
+ - 🛡️ **并发控制**:实现了推送任务队列,限制最大并发推送数为 3
229
+ - 📊 **智能失败统计**:重构失败计数逻辑,避免告警风暴
230
+ - 🔄 **完善更新检测**:实现了基于修改时间和哈希值的文章更新检测
231
+ - 🎯 **竞态条件修复**:添加运行标志,防止重复执行和重复推送
232
+ - ⚙️ **灵活时间配置**:支持自定义推送时间范围
233
+ - 🚨 **管理员告警**:支持将失败告警发送到指定管理员
234
+ - 🌍 **多平台支持**:添加了 Telegram、Discord 等平台的卡片渲染器
235
+ - 🔧 **资源管理**:完善了服务销毁和资源清理逻辑
236
+ - 🚀 **性能优化**:批量执行推送任务,提高效率
168
237
 
169
- ### v2.9.1-Beta
170
- - 🎉 **重构版本**:完全重构了插件架构,提高了代码质量和可维护性
171
- - ✨ 新增用户信息更新推送功能
238
+ ### v2.9.1
239
+ - 🎉 **正式版本**:完全重构了插件架构,提高了代码质量和可维护性
172
240
  - 📝 统一使用文本格式发送消息
173
241
  - 🔧 修复数据库配置存储错误
174
242
  - 🎯 优化推送逻辑,提高可靠性
175
243
  - 🚀 提升性能和稳定性
244
+ - 🔄 专注于核心功能:文章推送、文章更新推送和用户注册推送
176
245
 
177
246
  ### v1.1.1
178
247
  - 📝 统一使用文本格式发送消息
package/lib/commands.d.ts CHANGED
@@ -2,11 +2,15 @@ import { Context } from 'koishi';
2
2
  import { Config } from './index';
3
3
  import { WordPressService } from './wordpress';
4
4
  import { StorageService } from './storage';
5
+ import { ScheduleService } from './schedule';
5
6
  export declare class CommandService {
6
7
  private ctx;
7
8
  private config;
8
9
  private wordpressService;
9
10
  private storageService;
10
- constructor(ctx: Context, config: Config, wordpressService: WordPressService, storageService: StorageService);
11
+ private scheduleService;
12
+ constructor(ctx: Context, config: Config, wordpressService: WordPressService, storageService: StorageService, scheduleService: ScheduleService);
13
+ private isSuperAdmin;
14
+ private isAdmin;
11
15
  private initCommands;
12
16
  }