koishi-plugin-wordpress-notifier 2.0.6 → 2.0.8
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 +7 -0
- package/lib/index.d.ts +6 -1
- package/lib/index.js +59 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -285,6 +285,13 @@ npm install
|
|
|
285
285
|
|
|
286
286
|
## 版本历史
|
|
287
287
|
|
|
288
|
+
### 2.0.7 (2026-01-25)
|
|
289
|
+
|
|
290
|
+
- 🐛 修复用户注册日期显示"Invalid Date"的问题
|
|
291
|
+
- ✅ 修正WordPressUser接口中的用户注册日期字段名,从`registered_date`改为`date_registered`
|
|
292
|
+
- ✅ 更新日期处理逻辑,确保正确获取WordPress API返回的用户注册日期
|
|
293
|
+
- ✅ 保留健壮的日期解析机制,避免显示"Invalid Date"
|
|
294
|
+
|
|
288
295
|
### 2.0.6 (2026-01-25)
|
|
289
296
|
|
|
290
297
|
- ✅ 不再采用WordPress普通密码,改用应用程序密码
|
package/lib/index.d.ts
CHANGED
|
@@ -40,9 +40,14 @@ export interface WordPressUser {
|
|
|
40
40
|
id: number;
|
|
41
41
|
name: string;
|
|
42
42
|
slug: string;
|
|
43
|
-
date
|
|
43
|
+
date?: string;
|
|
44
|
+
date_registered?: string;
|
|
45
|
+
registered_date?: string;
|
|
46
|
+
created_at?: string;
|
|
47
|
+
registeredAt?: string;
|
|
44
48
|
email: string;
|
|
45
49
|
roles: string[];
|
|
50
|
+
[key: string]: any;
|
|
46
51
|
}
|
|
47
52
|
export interface WordPressPostRecord {
|
|
48
53
|
id: number;
|
package/lib/index.js
CHANGED
|
@@ -98,6 +98,13 @@ function apply(ctx, config) {
|
|
|
98
98
|
}
|
|
99
99
|
const response = await ctx.http.get(url, requestConfig);
|
|
100
100
|
ctx.logger.info(`成功获取 ${response.length} 位用户`);
|
|
101
|
+
// 添加调试日志,查看API返回的实际数据结构
|
|
102
|
+
if (response.length > 0) {
|
|
103
|
+
ctx.logger.info(`用户数据示例: ${JSON.stringify(response[0], null, 2)}`);
|
|
104
|
+
// 打印所有可能的日期相关字段
|
|
105
|
+
const user = response[0];
|
|
106
|
+
ctx.logger.info(`用户日期字段: date=${user.date}, date_registered=${user.date_registered}, registered_date=${user.registered_date}, created_at=${user.created_at}`);
|
|
107
|
+
}
|
|
101
108
|
return response;
|
|
102
109
|
}
|
|
103
110
|
catch (error) {
|
|
@@ -208,7 +215,58 @@ function apply(ctx, config) {
|
|
|
208
215
|
.trim();
|
|
209
216
|
};
|
|
210
217
|
const username = sanitizeText(user.name);
|
|
211
|
-
|
|
218
|
+
// 安全处理日期,避免显示 "Invalid Date"
|
|
219
|
+
let registerDate;
|
|
220
|
+
try {
|
|
221
|
+
ctx.logger.info(`正在处理用户 ${username} 的注册日期`);
|
|
222
|
+
// 尝试所有可能的日期字段,按优先级排序
|
|
223
|
+
const dateFields = [
|
|
224
|
+
'date_registered',
|
|
225
|
+
'registered_date',
|
|
226
|
+
'created_at',
|
|
227
|
+
'registeredAt',
|
|
228
|
+
'date'
|
|
229
|
+
];
|
|
230
|
+
let dateStr;
|
|
231
|
+
// 遍历所有可能的日期字段
|
|
232
|
+
for (const field of dateFields) {
|
|
233
|
+
if (user[field]) {
|
|
234
|
+
dateStr = user[field];
|
|
235
|
+
ctx.logger.info(`找到日期字段 ${field}: ${dateStr}`);
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// 如果没有找到已知字段,尝试打印所有字段以便调试
|
|
240
|
+
if (!dateStr) {
|
|
241
|
+
ctx.logger.info(`用户 ${username} 的所有字段: ${JSON.stringify(Object.keys(user))}`);
|
|
242
|
+
ctx.logger.info(`用户 ${username} 的原始数据: ${JSON.stringify(user)}`);
|
|
243
|
+
}
|
|
244
|
+
if (dateStr) {
|
|
245
|
+
// 尝试解析日期,WordPress API 可能返回 ISO 格式(如:2026-01-25T12:00:00)
|
|
246
|
+
// 或者可能是其他格式,需要安全处理
|
|
247
|
+
const date = new Date(dateStr);
|
|
248
|
+
ctx.logger.info(`解析日期 ${dateStr} 结果: ${date.toString()}`);
|
|
249
|
+
if (!isNaN(date.getTime())) {
|
|
250
|
+
registerDate = date.toLocaleString('zh-CN');
|
|
251
|
+
ctx.logger.info(`格式化后的日期: ${registerDate}`);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
// 如果日期解析失败,使用原始字符串或占位符
|
|
255
|
+
registerDate = dateStr || '未知时间';
|
|
256
|
+
ctx.logger.info(`日期解析失败,使用原始字符串: ${registerDate}`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
// 如果日期字段不存在,使用占位符
|
|
261
|
+
registerDate = '未知时间';
|
|
262
|
+
ctx.logger.info(`未找到日期字段,使用默认值: ${registerDate}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
// 捕获任何异常,确保消息能正常生成
|
|
267
|
+
ctx.logger.error(`处理用户 ${username} 日期时出错: ${error}`);
|
|
268
|
+
registerDate = '未知时间';
|
|
269
|
+
}
|
|
212
270
|
const segments = [];
|
|
213
271
|
if (mention && config.mentionAll) {
|
|
214
272
|
segments.push(koishi_1.h.at('all'));
|