koishi-plugin-wordpress-notifier 1.3.0 → 1.4.0

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
@@ -1,249 +1,249 @@
1
- # WordPress 文章自动推送插件
2
-
3
- 自动从 WordPress 网站获取最新文章并推送到指定 QQ 群或私聊。
4
-
5
- ## 功能特性
6
-
7
- - ✅ 自动从 WordPress REST API 获取最新文章
8
- - ✅ 定时推送新文章到指定 QQ 群或私聊
9
- - ✅ 支持手动查询最新文章和文章列表
10
- - ✅ 支持 @全体成员
11
- - ✅ 完善的去重机制,避免重复推送
12
- - ✅ 数据库持久化存储,机器人重启不丢失记录
13
- - ✅ 采用服务模式架构,便于扩展和维护
14
- - ✅ 支持自动推送开关
15
-
16
- ## 安装
17
-
18
- ### 通过 npm 安装
19
-
20
- ```bash
21
- npm install koishi-plugin-wordpress-notifier
22
- ```
23
-
24
- ### 通过 Koishi 控制台安装
25
-
26
- 1. 打开 Koishi 控制台
27
- 2. 进入「插件市场」
28
- 3. 搜索 `wordpress-notifier`
29
- 4. 点击安装按钮
30
-
31
- ## 配置
32
-
33
- 在 `koishi.yml` 中配置插件:
34
-
35
- ```yaml
36
- plugins:
37
- wordpress-notifier:
38
- wordpressUrl: 'https://your-wordpress-site.com' # WordPress 网站地址
39
- interval: 3600000 # 检查间隔(毫秒,默认 1 小时)
40
- targets:
41
- - '2801323326' # 推送目标(群号或 QQ 号)
42
- enableAutoPush: true # 是否启用自动推送
43
- mentionAll: false # 是否 @全体成员
44
- maxArticles: 5 # 每次最多推送的文章数量
45
- ```
46
-
47
- ### 配置参数说明
48
-
49
- | 参数 | 类型 | 默认值 | 说明 |
50
- |------|------|--------|------|
51
- | `wordpressUrl` | string | 必填 | WordPress 网站地址(例如:https://example.com) |
52
- | `interval` | number | 3600000 | 检查间隔,单位毫秒(默认 1 小时 = 3600000 毫秒) |
53
- | `targets` | array | 必填 | 推送目标列表,可以是群号或 QQ 号 |
54
- | `enableAutoPush` | boolean | true | 是否启用自动推送 |
55
- | `mentionAll` | boolean | false | 是否在推送时 @全体成员 |
56
- | `maxArticles` | number | 5 | 每次最多推送的文章数量 |
57
-
58
- ## 使用命令
59
-
60
- ### 查看最新文章
61
-
62
- ```
63
- /wordpress.latest
64
- ```
65
-
66
- 显示最新的 WordPress 文章列表,包含标题、日期和链接。
67
-
68
- ### 查看文章列表
69
-
70
- ```
71
- /wordpress.list
72
- ```
73
-
74
- 显示文章 ID 和标题的简洁列表。
75
-
76
- ### 手动推送最新文章
77
-
78
- ```
79
- /wordpress.push
80
- ```
81
-
82
- 立即检查并推送最新文章(即使自动推送已关闭)。
83
-
84
- ### 查看插件状态
85
-
86
- ```
87
- /wordpress.status
88
- ```
89
-
90
- 显示当前插件配置状态,包括网站地址、检查间隔、推送目标等。
91
-
92
- ### 切换自动推送开关
93
-
94
- ```
95
- /wordpress.toggle
96
- ```
97
-
98
- 开启或关闭自动推送功能。
99
-
100
- ### 切换 @全体成员 开关
101
-
102
- ```
103
- /wordpress.mention
104
- ```
105
-
106
- 开启或关闭 @全体成员 功能。
107
-
108
- ### 插件菜单
109
-
110
- ```
111
- /wordpress
112
- ```
113
-
114
- 显示插件菜单和所有可用命令。
115
-
116
- ## 工作原理
117
-
118
- 1. 插件启动时会自动创建数据库表 `wordpress_posts` 用于记录已推送的文章
119
- 2. 定时器每隔指定时间(默认 1 小时)检查一次 WordPress 网站的最新文章
120
- 3. 对于每篇新文章,检查是否已推送过
121
- 4. 如果是新文章,则格式化消息并推送到所有配置的目标
122
- 5. 推送成功后,将文章 ID 记录到数据库中
123
-
124
- ## 注意事项
125
-
126
- - WordPress 网站必须启用 REST API(默认启用)
127
- - 确保机器人有权限向目标群或私聊发送消息
128
- - @全体成员 功能需要机器人有相应权限
129
- - 建议设置合理的检查间隔,避免频繁请求 WordPress 网站
130
- - 插件使用数据库持久化存储,机器人重启后不会重复推送已推送的文章
131
-
132
- ## 常见问题
133
-
134
- ### 为什么文章没有推送?
135
-
136
- 可能原因:
137
- - WordPress 网站的 REST API 未启用
138
- - 机器人没有向目标群或私聊发送消息的权限
139
- - 文章已经被推送过(数据库中有记录)
140
- - 自动推送功能已关闭
141
-
142
- 解决方法:
143
- - 检查 WordPress 网站设置,确保 REST API 已启用
144
- - 确认机器人在目标群中有发送消息权限
145
- - 使用 `/wordpress.push` 命令手动触发推送
146
- - 使用 `/wordpress.status` 检查插件状态
147
-
148
- ### 如何修改检查间隔?
149
-
150
- 在配置文件中修改 `interval` 参数:
151
-
152
- ```yaml
153
- plugins:
154
- wordpress-notifier:
155
- interval: 1800000 # 30 分钟
156
- ```
157
-
158
- 建议:
159
- - 频繁更新的网站:设置较短间隔(如 30 分钟)
160
- - 更新较少的网站:设置较长间隔(如 2-4 小时)
161
- - 避免设置过短间隔,以免频繁请求 WordPress 网站
162
-
163
- ### @全体成员 功能不生效?
164
-
165
- 可能原因:
166
- - 机器人没有 @全体成员 的权限
167
- - `mentionAll` 配置设置为 `false`
168
-
169
- 解决方法:
170
- - 在群设置中授予机器人 @全体成员 权限
171
- - 使用 `/wordpress.mention` 命令开启功能
172
- - 或在配置文件中设置 `mentionAll: true`
173
-
174
- ### 支持推送到多个群吗?
175
-
176
- 支持!在配置文件中添加多个目标:
177
-
178
- ```yaml
179
- targets:
180
- - '群号1'
181
- - '群号2'
182
- - 'QQ号'
183
- ```
184
-
185
- ### 机器人重启后会重复推送吗?
186
-
187
- 不会!插件使用数据库持久化存储已推送的文章记录,机器人重启后不会重复推送。
188
-
189
- ## 开发
190
-
191
- 插件位于 `external/wordpress-notifier/` 目录。
192
-
193
- ### 编译插件
194
-
195
- ```bash
196
- cd external/wordpress-notifier
197
- npm run build
198
- ```
199
-
200
- ### 重新安装依赖
201
-
202
- ```bash
203
- cd external/wordpress-notifier
204
- npm install
205
- ```
206
-
207
- ## 版本历史
208
-
209
- ### 1.3.0 (2024-01-14)
210
-
211
- - 📝 更新作者邮箱为 kate522@88.com
212
- - 🔗 更新仓库地址为正确的 GitHub URL
213
- - 📝 优化 README.md 文档和链接
214
-
215
- ### 1.2.0 (2024-01-14)
216
-
217
- - 📝 优化 README.md 文档,添加详细的安装说明和常见问题
218
- - 📦 优化 npm 包结构,只包含必要文件
219
-
220
- ### 1.1.0 (2024-01-14)
221
-
222
- - ✨ 新增数据库持久化存储功能
223
- - 🐛 修复推送目标配置问题,使用 `ctx.broadcast([target], message)` 正确发送到指定目标
224
- - 🐛 修复 HTTP 服务注入问题,添加 `'http'` 到 inject 数组
225
- - 📝 添加 `.npmignore` 文件,确保 npm 发布时只包含必要文件
226
- - 📦 更新依赖项
227
-
228
- ### 1.0.0 (初始版本)
229
-
230
- - 🎉 首次发布
231
- - ✅ 基础推送功能
232
- - ✅ 命令系统
233
- - ✅ 去重机制
234
-
235
- ## 许可证
236
-
237
- MIT
238
-
239
- ## 相关链接
240
-
241
- - 插件仓库:https://github.com/Lexo0522/koishi-plugin-wordpress-notifier
242
- - Koishi 官方文档:https://koishi.js.org/
243
- - WordPress REST API 文档:https://developer.wordpress.com/rest-api/
244
-
245
- ## 安装(Install)
246
-
247
- ```bash
248
- npm i koishi-plugin-wordpress-notifier
249
- ```
1
+ # WordPress 文章自动推送插件
2
+
3
+ 自动从 WordPress 网站获取最新文章并推送到指定 QQ 群或私聊。
4
+
5
+ ## 功能特性
6
+
7
+ - ✅ 自动从 WordPress REST API 获取最新文章
8
+ - ✅ 定时推送新文章到指定 QQ 群或私聊
9
+ - ✅ 支持手动查询最新文章和文章列表
10
+ - ✅ 支持 @全体成员
11
+ - ✅ 完善的去重机制,避免重复推送
12
+ - ✅ 数据库持久化存储,机器人重启不丢失记录
13
+ - ✅ 采用服务模式架构,便于扩展和维护
14
+ - ✅ 支持自动推送开关
15
+
16
+ ## 安装
17
+
18
+ ### 通过 npm 安装
19
+
20
+ ```bash
21
+ npm install koishi-plugin-wordpress-notifier
22
+ ```
23
+
24
+ ### 通过 Koishi 控制台安装
25
+
26
+ 1. 打开 Koishi 控制台
27
+ 2. 进入「插件市场」
28
+ 3. 搜索 `wordpress-notifier`
29
+ 4. 点击安装按钮
30
+
31
+ ## 配置
32
+
33
+ 在 `koishi.yml` 中配置插件:
34
+
35
+ ```yaml
36
+ plugins:
37
+ wordpress-notifier:
38
+ wordpressUrl: 'https://your-wordpress-site.com' # WordPress 网站地址
39
+ interval: 3600000 # 检查间隔(毫秒,默认 1 小时)
40
+ targets:
41
+ - '2801323326' # 推送目标(群号或 QQ 号)
42
+ enableAutoPush: true # 是否启用自动推送
43
+ mentionAll: false # 是否 @全体成员
44
+ maxArticles: 5 # 每次最多推送的文章数量
45
+ ```
46
+
47
+ ### 配置参数说明
48
+
49
+ | 参数 | 类型 | 默认值 | 说明 |
50
+ |------|------|--------|------|
51
+ | `wordpressUrl` | string | 必填 | WordPress 网站地址(例如:https://example.com) |
52
+ | `interval` | number | 3600000 | 检查间隔,单位毫秒(默认 1 小时 = 3600000 毫秒) |
53
+ | `targets` | array | 必填 | 推送目标列表,可以是群号或 QQ 号 |
54
+ | `enableAutoPush` | boolean | true | 是否启用自动推送 |
55
+ | `mentionAll` | boolean | false | 是否在推送时 @全体成员 |
56
+ | `maxArticles` | number | 5 | 每次最多推送的文章数量 |
57
+
58
+ ## 使用命令
59
+
60
+ ### 查看最新文章
61
+
62
+ ```
63
+ /wordpress.latest
64
+ ```
65
+
66
+ 显示最新的 WordPress 文章列表,包含标题、日期和链接。
67
+
68
+ ### 查看文章列表
69
+
70
+ ```
71
+ /wordpress.list
72
+ ```
73
+
74
+ 显示文章 ID 和标题的简洁列表。
75
+
76
+ ### 手动推送最新文章
77
+
78
+ ```
79
+ /wordpress.push
80
+ ```
81
+
82
+ 立即检查并推送最新文章(即使自动推送已关闭)。
83
+
84
+ ### 查看插件状态
85
+
86
+ ```
87
+ /wordpress.status
88
+ ```
89
+
90
+ 显示当前插件配置状态,包括网站地址、检查间隔、推送目标等。
91
+
92
+ ### 切换自动推送开关
93
+
94
+ ```
95
+ /wordpress.toggle
96
+ ```
97
+
98
+ 开启或关闭自动推送功能。
99
+
100
+ ### 切换 @全体成员 开关
101
+
102
+ ```
103
+ /wordpress.mention
104
+ ```
105
+
106
+ 开启或关闭 @全体成员 功能。
107
+
108
+ ### 插件菜单
109
+
110
+ ```
111
+ /wordpress
112
+ ```
113
+
114
+ 显示插件菜单和所有可用命令。
115
+
116
+ ## 工作原理
117
+
118
+ 1. 插件启动时会自动创建数据库表 `wordpress_posts` 用于记录已推送的文章
119
+ 2. 定时器每隔指定时间(默认 1 小时)检查一次 WordPress 网站的最新文章
120
+ 3. 对于每篇新文章,检查是否已推送过
121
+ 4. 如果是新文章,则格式化消息并推送到所有配置的目标
122
+ 5. 推送成功后,将文章 ID 记录到数据库中
123
+
124
+ ## 注意事项
125
+
126
+ - WordPress 网站必须启用 REST API(默认启用)
127
+ - 确保机器人有权限向目标群或私聊发送消息
128
+ - @全体成员 功能需要机器人有相应权限
129
+ - 建议设置合理的检查间隔,避免频繁请求 WordPress 网站
130
+ - 插件使用数据库持久化存储,机器人重启后不会重复推送已推送的文章
131
+
132
+ ## 常见问题
133
+
134
+ ### 为什么文章没有推送?
135
+
136
+ 可能原因:
137
+ - WordPress 网站的 REST API 未启用
138
+ - 机器人没有向目标群或私聊发送消息的权限
139
+ - 文章已经被推送过(数据库中有记录)
140
+ - 自动推送功能已关闭
141
+
142
+ 解决方法:
143
+ - 检查 WordPress 网站设置,确保 REST API 已启用
144
+ - 确认机器人在目标群中有发送消息权限
145
+ - 使用 `/wordpress.push` 命令手动触发推送
146
+ - 使用 `/wordpress.status` 检查插件状态
147
+
148
+ ### 如何修改检查间隔?
149
+
150
+ 在配置文件中修改 `interval` 参数:
151
+
152
+ ```yaml
153
+ plugins:
154
+ wordpress-notifier:
155
+ interval: 1800000 # 30 分钟
156
+ ```
157
+
158
+ 建议:
159
+ - 频繁更新的网站:设置较短间隔(如 30 分钟)
160
+ - 更新较少的网站:设置较长间隔(如 2-4 小时)
161
+ - 避免设置过短间隔,以免频繁请求 WordPress 网站
162
+
163
+ ### @全体成员 功能不生效?
164
+
165
+ 可能原因:
166
+ - 机器人没有 @全体成员 的权限
167
+ - `mentionAll` 配置设置为 `false`
168
+
169
+ 解决方法:
170
+ - 在群设置中授予机器人 @全体成员 权限
171
+ - 使用 `/wordpress.mention` 命令开启功能
172
+ - 或在配置文件中设置 `mentionAll: true`
173
+
174
+ ### 支持推送到多个群吗?
175
+
176
+ 支持!在配置文件中添加多个目标:
177
+
178
+ ```yaml
179
+ targets:
180
+ - '群号1'
181
+ - '群号2'
182
+ - 'QQ号'
183
+ ```
184
+
185
+ ### 机器人重启后会重复推送吗?
186
+
187
+ 不会!插件使用数据库持久化存储已推送的文章记录,机器人重启后不会重复推送。
188
+
189
+ ## 开发
190
+
191
+ 插件位于 `external/wordpress-notifier/` 目录。
192
+
193
+ ### 编译插件
194
+
195
+ ```bash
196
+ cd external/wordpress-notifier
197
+ npm run build
198
+ ```
199
+
200
+ ### 重新安装依赖
201
+
202
+ ```bash
203
+ cd external/wordpress-notifier
204
+ npm install
205
+ ```
206
+
207
+ ## 版本历史
208
+
209
+ ### 1.3.0 (2024-01-14)
210
+
211
+ - 📝 更新作者邮箱为 kate522@88.com
212
+ - 🔗 更新仓库地址为正确的 GitHub URL
213
+ - 📝 优化 README.md 文档和链接
214
+
215
+ ### 1.2.0 (2024-01-14)
216
+
217
+ - 📝 优化 README.md 文档,添加详细的安装说明和常见问题
218
+ - 📦 优化 npm 包结构,只包含必要文件
219
+
220
+ ### 1.1.0 (2024-01-14)
221
+
222
+ - ✨ 新增数据库持久化存储功能
223
+ - 🐛 修复推送目标配置问题,使用 `ctx.broadcast([target], message)` 正确发送到指定目标
224
+ - 🐛 修复 HTTP 服务注入问题,添加 `'http'` 到 inject 数组
225
+ - 📝 添加 `.npmignore` 文件,确保 npm 发布时只包含必要文件
226
+ - 📦 更新依赖项
227
+
228
+ ### 1.0.0 (初始版本)
229
+
230
+ - 🎉 首次发布
231
+ - ✅ 基础推送功能
232
+ - ✅ 命令系统
233
+ - ✅ 去重机制
234
+
235
+ ## 许可证
236
+
237
+ MIT
238
+
239
+ ## 相关链接
240
+
241
+ - 插件仓库:https://github.com/Lexo0522/koishi-plugin-wordpress-notifier
242
+ - Koishi 官方文档:https://koishi.js.org/
243
+ - WordPress REST API 文档:https://developer.wordpress.com/rest-api/
244
+
245
+ ## 安装(Install)
246
+
247
+ ```bash
248
+ npm i koishi-plugin-wordpress-notifier
249
+ ```
package/lib/index.d.ts CHANGED
@@ -29,7 +29,6 @@ export interface WordPressPost {
29
29
  tags: number[];
30
30
  }
31
31
  export interface WordPressPostRecord {
32
- id: number;
33
32
  postId: number;
34
33
  pushedAt: Date;
35
34
  }
package/lib/index.js CHANGED
@@ -16,7 +16,6 @@ exports.Config = koishi_1.Schema.object({
16
16
  function apply(ctx, config) {
17
17
  ctx.logger.info('WordPress 推送插件已加载');
18
18
  ctx.model.extend('wordpress_posts', {
19
- id: 'unsigned',
20
19
  postId: 'integer',
21
20
  pushedAt: 'timestamp'
22
21
  });
@@ -119,12 +118,12 @@ function apply(ctx, config) {
119
118
  ctx.command('wordpress.status', '查看插件状态')
120
119
  .action(() => {
121
120
  ctx.logger.info('命令 wordpress.status 被调用');
122
- return `📊 WordPress 推送插件状态:
123
- 🌐 网站地址: ${config.wordpressUrl}
124
- ⏰ 检查间隔: ${config.interval / 1000} 秒
125
- 🎯 推送目标: ${config.targets.join(', ')}
126
- 🔔 自动推送: ${config.enableAutoPush ? '开启' : '关闭'}
127
- 📢 @全体成员: ${config.mentionAll ? '开启' : '关闭'}
121
+ return `📊 WordPress 推送插件状态:
122
+ 🌐 网站地址: ${config.wordpressUrl}
123
+ ⏰ 检查间隔: ${config.interval / 1000} 秒
124
+ 🎯 推送目标: ${config.targets.join(', ')}
125
+ 🔔 自动推送: ${config.enableAutoPush ? '开启' : '关闭'}
126
+ 📢 @全体成员: ${config.mentionAll ? '开启' : '关闭'}
128
127
  📝 最多推送: ${config.maxArticles} 篇`;
129
128
  });
130
129
  ctx.command('wordpress.toggle', '切换自动推送开关')
@@ -142,15 +141,15 @@ function apply(ctx, config) {
142
141
  ctx.command('wordpress', 'WordPress 推送插件菜单')
143
142
  .action(() => {
144
143
  ctx.logger.info('命令 wordpress 被调用');
145
- return `📚 WordPress 推送插件菜单:
146
-
147
- 🔹 /wordpress.status - 查看插件状态
148
- 🔹 /wordpress.latest - 查看最新文章
149
- 🔹 /wordpress.list - 查看文章列表
150
- 🔹 /wordpress.push - 手动推送最新文章
151
- 🔹 /wordpress.toggle - 切换自动推送开关
152
- 🔹 /wordpress.mention - 切换 @全体成员 开关
153
-
144
+ return `📚 WordPress 推送插件菜单:
145
+
146
+ 🔹 /wordpress.status - 查看插件状态
147
+ 🔹 /wordpress.latest - 查看最新文章
148
+ 🔹 /wordpress.list - 查看文章列表
149
+ 🔹 /wordpress.push - 手动推送最新文章
150
+ 🔹 /wordpress.toggle - 切换自动推送开关
151
+ 🔹 /wordpress.mention - 切换 @全体成员 开关
152
+
154
153
  💡 提示:所有命令都需要加 / 前缀`;
155
154
  });
156
155
  ctx.on('ready', async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-wordpress-notifier",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "WordPress 文章自动推送到 QQ",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",