@zhin.js/plugin-rss 1.1.9 → 1.1.11

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.
Files changed (61) hide show
  1. package/README.md +8 -0
  2. package/commands/rss-add/[url]/index.js +12 -10
  3. package/commands/rss-add/[url]/index.ts +12 -10
  4. package/commands/rss-check/[[url]]/index.js +8 -7
  5. package/commands/rss-check/[[url]]/index.ts +8 -7
  6. package/commands/rss-list/index.js +9 -7
  7. package/commands/rss-list/index.ts +9 -7
  8. package/commands/rss-preview/[url]/index.js +7 -6
  9. package/commands/rss-preview/[url]/index.ts +7 -6
  10. package/commands/rss-remove/[url]/index.js +8 -7
  11. package/commands/rss-remove/[url]/index.ts +8 -7
  12. package/lib/admin-i18n.d.ts +219 -0
  13. package/lib/admin-i18n.d.ts.map +1 -0
  14. package/lib/admin-i18n.js +216 -0
  15. package/lib/admin-i18n.js.map +1 -0
  16. package/lib/admin-tasks.d.ts +40 -2
  17. package/lib/admin-tasks.d.ts.map +1 -1
  18. package/lib/admin-tasks.js +99 -72
  19. package/lib/admin-tasks.js.map +1 -1
  20. package/lib/channel.d.ts +2 -1
  21. package/lib/channel.d.ts.map +1 -1
  22. package/lib/channel.js +3 -3
  23. package/lib/channel.js.map +1 -1
  24. package/lib/feed.d.ts +2 -1
  25. package/lib/feed.d.ts.map +1 -1
  26. package/lib/feed.js +6 -5
  27. package/lib/feed.js.map +1 -1
  28. package/lib/i18n.d.ts +2 -0
  29. package/lib/i18n.d.ts.map +1 -0
  30. package/lib/i18n.js +168 -0
  31. package/lib/i18n.js.map +1 -0
  32. package/lib/poll.d.ts +3 -1
  33. package/lib/poll.d.ts.map +1 -1
  34. package/lib/poll.js +23 -18
  35. package/lib/poll.js.map +1 -1
  36. package/lib/quiet-hours.d.ts +5 -0
  37. package/lib/quiet-hours.d.ts.map +1 -1
  38. package/lib/quiet-hours.js +9 -4
  39. package/lib/quiet-hours.js.map +1 -1
  40. package/lib/runtime.d.ts +3 -0
  41. package/lib/runtime.d.ts.map +1 -1
  42. package/lib/runtime.js.map +1 -1
  43. package/lib/storage.d.ts.map +1 -1
  44. package/lib/storage.js +6 -5
  45. package/lib/storage.js.map +1 -1
  46. package/package.json +7 -7
  47. package/plugin.js +6 -2
  48. package/schema.json +6 -1
  49. package/skills/rss/tools/rss_list_subscriptions/index.js +4 -3
  50. package/skills/rss/tools/rss_list_subscriptions/index.ts +4 -3
  51. package/skills/rss/tools/rss_preview_feed/index.js +4 -3
  52. package/skills/rss/tools/rss_preview_feed/index.ts +4 -3
  53. package/src/admin-i18n.ts +218 -0
  54. package/src/admin-tasks.ts +95 -72
  55. package/src/channel.ts +4 -2
  56. package/src/feed.ts +7 -5
  57. package/src/i18n.ts +168 -0
  58. package/src/poll.ts +24 -18
  59. package/src/quiet-hours.ts +11 -4
  60. package/src/runtime.ts +3 -0
  61. package/src/storage.ts +6 -5
@@ -1,10 +1,13 @@
1
+ import { adminText, taskDetail, formatTaskDetail, isAdminTextKey, LocalizedTaskError } from './admin-i18n.js';
2
+ import { rssMessages as t } from './i18n.js';
3
+ import { resolveLocale } from 'zhin.js/i18n';
1
4
  import { createHash, randomUUID } from 'node:crypto';
2
5
  import { createDeliveryTarget } from 'zhin.js';
3
6
  import { EndpointDeliveryError } from '@zhin.js/im-contract';
4
- import { createGenerationAdmissionGate, generationAdmissionSource, PluginTaskError } from 'zhin.js/plugin-runtime';
7
+ import { createGenerationAdmissionGate, generationAdmissionSource } from 'zhin.js/plugin-runtime';
5
8
  import { fetchFeed, stripHtml } from './feed.js';
6
9
  import { formatNewItems } from './poll.js';
7
- import { isRssQuietMinute, parseQuietHours } from './quiet-hours.js';
10
+ import { isRssQuietMinute, parseQuietHours, LocalizedQuietHoursError } from './quiet-hours.js';
8
11
  export const ADMIN_RSS_STATE_KEY = 'admin-rss/v1';
9
12
  const MAX_TASKS = 8;
10
13
  const MAX_RECEIPTS = 32;
@@ -15,13 +18,27 @@ const UUID = /^[\da-f]{8}-(?:[\da-f]{4}-){3}[\da-f]{12}$/iu;
15
18
  const DIGEST = /^[\da-f]{64}$/u;
16
19
  /** Administrator subscriptions use their own owner-bound durable pool and per-task cursors. */
17
20
  export class AdministratorRssTasks {
21
+ i18n = {
22
+ "en": {
23
+ "title": "Administrator RSS subscriptions",
24
+ "description": "Deliver new articles to an exact account, conversation and thread, independently of chat subscriptions.",
25
+ "effects": [
26
+ "Fetches the feed on the instance pollCron schedule. The first successful fetch after creation or resuming only establishes a baseline; historical articles are not sent.",
27
+ "New articles use the unified send pipeline and the complete selected target. Pausing or cancelling cannot recall a delivery already in progress.",
28
+ "Unconfirmed delivery is never retried or resumed automatically. Check the target conversation before cancelling and creating another subscription.",
29
+ "Each instance supports 8 tasks and retains 32 operation receipts and 64 recent article identifiers. An article that disappears for a long time may be treated as new when it returns.",
30
+ "Only administrator subscriptions with all three quiet-hours fields defer and summarize delivery. The first poll after quiet hours sends the pending summary; the next poll fetches the feed. Reminders and chat subscriptions are unaffected.",
31
+ "A summary stores up to 3 short items, further limited by maxItems, and counts up to 10000 updates before showing “at least”. Pausing, editing or cancelling clears pending summaries; resuming establishes a new baseline without backfilling."
32
+ ]
33
+ }
34
+ };
18
35
  title = '管理员 RSS 订阅';
19
36
  description = '向精确账号、会话与线程推送新文章,独立于聊天创建的 RSS 订阅';
20
37
  schema = { type: 'object', additionalProperties: false, required: ['url'], properties: {
21
- url: { type: 'string', minLength: 1, maxLength: 2048, title: 'RSS / Atom 地址', description: 'HTTP(S) 地址,不接受 URL 用户名或密码' },
22
- quietTimezone: { type: 'string', maxLength: 128, title: '静默时区(可选)', description: '如 Asia/Shanghai;三项全部留空关闭静默,启用须全部填写' },
23
- quietStart: { type: 'string', maxLength: 5, title: '静默开始(可选)', description: 'HH:mm,包含此分钟,如 22:00;须同时填写时区和结束时间' },
24
- quietEnd: { type: 'string', maxLength: 5, title: '静默结束(可选)', description: 'HH:mm,不包含此分钟,如 08:00;开始和结束不能相同' },
38
+ url: { type: 'string', minLength: 1, maxLength: 2048, 'x-i18n': { "en": { "title": "RSS / Atom URL", "description": "HTTP(S) URL without a username or password" } }, title: 'RSS / Atom 地址', description: 'HTTP(S) 地址,不接受 URL 用户名或密码' },
39
+ quietTimezone: { type: 'string', maxLength: 128, 'x-i18n': { "en": { "title": "Quiet timezone (optional)", "description": "For example Asia/Shanghai. Fill in all three quiet-hours fields to enable, or leave all empty to disable." } }, title: '静默时区(可选)', description: '如 Asia/Shanghai;三项全部留空关闭静默,启用须全部填写' },
40
+ quietStart: { type: 'string', maxLength: 5, 'x-i18n': { "en": { "title": "Quiet start (optional)", "description": "HH:mm, inclusive, such as 22:00. Timezone and end time are also required." } }, title: '静默开始(可选)', description: 'HH:mm,包含此分钟,如 22:00;须同时填写时区和结束时间' },
41
+ quietEnd: { type: 'string', maxLength: 5, 'x-i18n': { "en": { "title": "Quiet end (optional)", "description": "HH:mm, exclusive, such as 08:00. Start and end must be different." } }, title: '静默结束(可选)', description: 'HH:mm,不包含此分钟,如 08:00;开始和结束不能相同' },
25
42
  } };
26
43
  effects = [
27
44
  '保存后按实例 pollCron 定时访问源站;新建及暂停后恢复的首次成功抓取只建立基线,不发送历史文章',
@@ -35,21 +52,23 @@ export class AdministratorRssTasks {
35
52
  #outbound;
36
53
  #config;
37
54
  #load;
55
+ projectLocale;
38
56
  #admission = createGenerationAdmissionGate();
39
57
  #stopped = false;
40
58
  #working = false;
41
59
  get [generationAdmissionSource]() { return [this.#admission]; }
42
- constructor(state, outbound, config, load = fetchFeed) {
60
+ constructor(state, outbound, config, load = fetchFeed, projectLocale = 'zh-CN') {
43
61
  if (!outbound.sendTarget)
44
- throw unavailable('管理员 RSS 需要支持精确目标的 Outbound Host');
62
+ throw unavailable('exactTarget');
63
+ this.projectLocale = projectLocale;
45
64
  this.#state = state;
46
65
  this.#outbound = outbound;
47
66
  this.#config = config;
48
67
  this.#load = load;
49
68
  }
50
69
  stop() { this.#stopped = true; }
51
- async read() {
52
- return this.#admit(async () => this.#snapshot(readBook(await this.#state.get(ADMIN_RSS_STATE_KEY))));
70
+ async read(options) {
71
+ return this.#admit(async () => this.#snapshot(readBook(await this.#state.get(ADMIN_RSS_STATE_KEY)), options?.locale), options?.locale);
53
72
  }
54
73
  async create(input) {
55
74
  return this.#admit(async () => {
@@ -59,12 +78,12 @@ export class AdministratorRssTasks {
59
78
  target = createDeliveryTarget({ conversation: input.target });
60
79
  }
61
80
  catch {
62
- throw invalid('请提供完整有效的目标账号、会话、父容器和线程');
81
+ throw invalid('invalidTarget');
63
82
  }
64
83
  const parameters = parseParameters(input.parameters), { url, quiet } = parameters;
65
84
  const fingerprint = digest({ operation: 'create', target, url, ...(quiet ? { quiet } : {}) });
66
- const task = { id: input.requestId, creation: fingerprint, version: randomUUID(), url, target, createdAt: Date.now(), state: 'scheduled',
67
- seen: null, claimId: null, lastCheckAt: null, lastRunAt: null, detail: '等待首次抓取建立基线,不发送历史文章', ...(quiet ? { quiet, pending: null } : {}) };
85
+ const task = { id: input.requestId, creation: fingerprint, version: randomUUID(), url, target, locale: this.projectLocale, createdAt: Date.now(), state: 'scheduled',
86
+ seen: null, claimId: null, lastCheckAt: null, lastRunAt: null, ...taskDetail('waiting'), ...(quiet ? { quiet, pending: null } : {}) };
68
87
  const revision = randomUUID();
69
88
  const book = await this.#state.update(ADMIN_RSS_STATE_KEY, current => {
70
89
  this.#assertLive();
@@ -75,28 +94,28 @@ export class AdministratorRssTasks {
75
94
  const existing = book.tasks.find(item => item.id === task.id);
76
95
  if (existing) {
77
96
  if (existing.creation !== fingerprint)
78
- throw conflict('同一请求 ID 已用于其他内容');
97
+ throw conflict('requestReused');
79
98
  return book;
80
99
  }
81
100
  const active = book.tasks.filter(item => item.state !== 'cancelled' && item.state !== 'failed');
82
101
  if (active.length >= MAX_TASKS)
83
- throw invalid('管理员 RSS 订阅已达 8 条上限,请先取消任务');
102
+ throw invalid('quota');
84
103
  if (active.some(item => item.url === url && JSON.stringify(item.target) === JSON.stringify(target)))
85
- throw invalid('此完整目标已有该源的管理员订阅,请先核实原任务');
104
+ throw invalid('duplicate');
86
105
  const historyLimit = MAX_TASKS - active.length - 1;
87
106
  const history = historyLimit ? book.tasks.filter(item => item.state === 'cancelled' || item.state === 'failed').slice(-historyLimit) : [];
88
107
  return bounded({ version: 2, revision, tasks: [...active, ...history, task], receipts: receipt(book, input.requestId, fingerprint, task.id, 'create') });
89
108
  });
90
- return this.#snapshot(readBook(book));
91
- });
109
+ return this.#snapshot(readBook(book), input.locale);
110
+ }, input.locale);
92
111
  }
93
112
  async change(input) {
94
113
  return this.#admit(async () => {
95
114
  assertMutation(input);
96
115
  if (!isUuid(input.id) || !['pause', 'resume', 'cancel', 'update'].includes(input.action))
97
- throw invalid('任务 ID 或操作无效');
116
+ throw invalid('invalidAction');
98
117
  if (input.action !== 'update' && input.parameters !== undefined)
99
- throw invalid('仅编辑操作接受参数');
118
+ throw invalid('updateParameters');
100
119
  const parameters = input.action === 'update' ? parseParameters(input.parameters) : undefined;
101
120
  const url = parameters?.url;
102
121
  const fingerprint = digest({ operation: input.action, id: input.id, url: url ?? null, ...(parameters?.quiet ? { quiet: parameters.quiet } : {}) }), revision = randomUUID(), version = randomUUID();
@@ -108,37 +127,37 @@ export class AdministratorRssTasks {
108
127
  assertRevision(book, input.expectedRevision);
109
128
  const task = book.tasks.find(item => item.id === input.id);
110
129
  if (!task)
111
- throw new PluginTaskError('not_found', '未找到当前实例的管理员 RSS 订阅;聊天订阅不在此入口管理');
130
+ throw new LocalizedTaskError('not_found', 'notFound');
112
131
  let changed;
113
132
  switch (input.action) {
114
133
  case 'pause':
115
134
  if (task.state !== 'scheduled')
116
- throw invalid('仅待轮询订阅可以暂停');
117
- changed = { ...task, version, state: 'paused', pending: null, detail: '管理员暂停并清空待发摘要;恢复时重新建立基线,不补发历史文章' };
135
+ throw invalid('pauseState');
136
+ changed = { ...task, version, state: 'paused', pending: null, ...taskDetail('paused') };
118
137
  break;
119
138
  case 'resume':
120
139
  if (task.state !== 'paused')
121
- throw invalid('仅暂停订阅可以恢复;未确认投递不能恢复或重试');
122
- changed = { ...task, version, state: 'scheduled', seen: null, pending: null, detail: '已恢复,等待重新建立基线,不补发历史文章' };
140
+ throw invalid('resumeState');
141
+ changed = { ...task, version, state: 'scheduled', seen: null, pending: null, ...taskDetail('resumed') };
123
142
  break;
124
143
  case 'update':
125
144
  if (task.state !== 'paused')
126
- throw invalid('编辑前请先暂停订阅;未确认投递不能编辑');
145
+ throw invalid('updateState');
127
146
  if (book.tasks.some(item => item.id !== task.id && item.state !== 'cancelled' && item.state !== 'failed' && item.url === url
128
147
  && JSON.stringify(item.target) === JSON.stringify(task.target)))
129
- throw invalid('此完整目标已有该源的管理员订阅');
130
- changed = { ...withoutQuiet(task), version, url: url, ...(parameters?.quiet ? { quiet: parameters.quiet } : {}), pending: null, seen: null, detail: '已编辑并清空待发摘要,保持暂停,恢复后首次抓取只建立基线' };
148
+ throw invalid('duplicateUpdate');
149
+ changed = { ...withoutQuiet(task), version, url: url, ...(parameters?.quiet ? { quiet: parameters.quiet } : {}), pending: null, seen: null, ...taskDetail('edited') };
131
150
  break;
132
151
  case 'cancel':
133
152
  if (task.state === 'cancelled' || task.state === 'failed')
134
- throw invalid('任务已结束,不能再次取消');
135
- changed = { ...task, version, state: 'cancelled', pending: null, detail: '管理员取消并清空待发摘要;已经开始的投递无法撤回' };
153
+ throw invalid('finished');
154
+ changed = { ...task, version, state: 'cancelled', pending: null, ...taskDetail('cancelled') };
136
155
  break;
137
156
  }
138
157
  return bounded({ ...book, version: 2, revision, tasks: book.tasks.map(item => item.id === task.id ? changed : item), receipts: receipt(book, input.requestId, fingerprint, task.id, input.action) });
139
158
  });
140
- return this.#snapshot(readBook(result));
141
- });
159
+ return this.#snapshot(readBook(result), input.locale);
160
+ }, input.locale);
142
161
  }
143
162
  /** Called by the plugin's one existing RSS poll registration, never by chat rss-check. */
144
163
  async tick() {
@@ -159,7 +178,7 @@ export class AdministratorRssTasks {
159
178
  const claimed = await this.#claimPending(task);
160
179
  if (claimed) {
161
180
  flushed.add(task.id);
162
- await this.#deliver(claimed, formatSummary(claimed.url, claimed.pending, this.#config.maxItems));
181
+ await this.#deliver(claimed, formatSummary(claimed.url, claimed.pending, this.#config.maxItems, resolveLocale(claimed.locale)));
163
182
  }
164
183
  }
165
184
  const tasks = readBook(await this.#state.get(ADMIN_RSS_STATE_KEY)).tasks;
@@ -173,7 +192,7 @@ export class AdministratorRssTasks {
173
192
  feed = await this.#load(task.url, this.#config.timeout);
174
193
  }
175
194
  catch {
176
- await this.#recordCheck(task, '源站抓取失败;尚未尝试投递,下轮重查');
195
+ await this.#recordCheck(task, 'fetchFailed');
177
196
  continue;
178
197
  }
179
198
  if (this.#stopped)
@@ -195,16 +214,15 @@ export class AdministratorRssTasks {
195
214
  if (this.#stopped || live?.version !== task.version || live.state !== 'scheduled')
196
215
  return current;
197
216
  const changed = { ...live, seen, version, lastCheckAt: now, pending, ...(shouldSend
198
- ? { state: 'unknown', claimId, lastRunAt: now, detail: '投递中或未确认;不会自动重试' }
199
- : { detail: pending ? `静默中,已积累${pending.countCapped ? '至少' : ''}${pending.count} 条更新;退出静默后的首轮轮询汇总`
200
- : task.seen === null ? '已建立基线;从后续新文章开始推送' : '抓取完成,暂无新文章' }) };
217
+ ? { state: 'unknown', claimId, lastRunAt: now, ...taskDetail('delivering') }
218
+ : taskDetail(pending ? 'quietPending' : task.seen === null ? 'baseline' : 'noNew')) };
201
219
  return bounded({ ...book, version: 2, revision, tasks: book.tasks.map(item => item.id === task.id ? changed : item) });
202
220
  });
203
221
  const claimed = readBook(result).tasks.find(item => item.id === task.id && item.claimId === claimId && item.state === 'unknown');
204
222
  if (!claimed || this.#stopped)
205
223
  continue;
206
- await this.#deliver(claimed, claimed.pending ? formatSummary(claimed.url, claimed.pending, this.#config.maxItems)
207
- : formatNewItems(feed.title || claimed.url, newItems, this.#config.maxItems));
224
+ await this.#deliver(claimed, claimed.pending ? formatSummary(claimed.url, claimed.pending, this.#config.maxItems, resolveLocale(claimed.locale))
225
+ : formatNewItems(feed.title || claimed.url, newItems, this.#config.maxItems, resolveLocale(claimed.locale)));
208
226
  }
209
227
  });
210
228
  }
@@ -219,25 +237,25 @@ export class AdministratorRssTasks {
219
237
  if (this.#stopped || !live || live.version !== task.version || live.state !== 'scheduled' || !live.pending || !live.quiet || isRssQuietMinute(live.quiet, now))
220
238
  return current;
221
239
  return bounded({ ...book, version: 2, revision, tasks: book.tasks.map(item => item.id === task.id
222
- ? { ...item, version, claimId, lastRunAt: now, state: 'unknown', detail: '摘要投递中或未确认;不会自动重试' } : item) });
240
+ ? { ...item, version, claimId, lastRunAt: now, state: 'unknown', ...taskDetail('summaryDelivering') } : item) });
223
241
  });
224
242
  return readBook(result).tasks.find(item => item.id === task.id && item.claimId === claimId && item.state === 'unknown');
225
243
  }
226
244
  async #deliver(claimed, content) {
227
245
  if (this.#stopped)
228
246
  return;
229
- let state = 'unknown', detail = '平台未确认投递,请核实目标会话后取消并另建订阅;不会自动重试';
247
+ let state = 'unknown', detail = taskDetail('unknown');
230
248
  try {
231
- const id = await this.#outbound.sendTarget(claimed.target, content);
249
+ const id = await this.#outbound.sendTarget(claimed.target, content, { locale: resolveLocale(claimed.locale) });
232
250
  if (id) {
233
251
  state = 'scheduled';
234
- detail = '已确认投递;等待后续新文章';
252
+ detail = taskDetail('delivered');
235
253
  }
236
254
  }
237
255
  catch (error) {
238
256
  if (error instanceof EndpointDeliveryError && error.disposition !== 'unknown') {
239
257
  state = 'failed';
240
- detail = '平台明确未投递或拒绝;订阅已停止';
258
+ detail = taskDetail('rejected');
241
259
  }
242
260
  }
243
261
  const revision = randomUUID(), version = randomUUID();
@@ -246,10 +264,10 @@ export class AdministratorRssTasks {
246
264
  if (live?.claimId !== claimed.claimId || live.state !== 'unknown')
247
265
  return current;
248
266
  return bounded({ ...book, version: 2, revision, tasks: book.tasks.map(item => item.id === claimed.id
249
- ? { ...item, state, detail, version, ...(state === 'scheduled' ? { pending: null } : {}) } : item) });
267
+ ? { ...item, state, ...detail, version, ...(state === 'scheduled' ? { pending: null } : {}) } : item) });
250
268
  });
251
269
  }
252
- async #recordCheck(task, detail) {
270
+ async #recordCheck(task, detailKey) {
253
271
  if (this.#stopped)
254
272
  return;
255
273
  const revision = randomUUID(), version = randomUUID(), now = Date.now();
@@ -257,29 +275,35 @@ export class AdministratorRssTasks {
257
275
  const book = readBook(current);
258
276
  if (this.#stopped || !book.tasks.some(item => item.id === task.id && item.version === task.version && item.state === 'scheduled'))
259
277
  return current;
260
- return bounded({ ...book, version: 2, revision, tasks: book.tasks.map(item => item.id === task.id ? { ...item, version, detail, lastCheckAt: now } : item) });
278
+ return bounded({ ...book, version: 2, revision, tasks: book.tasks.map(item => item.id === task.id ? { ...item, version, ...taskDetail(detailKey), lastCheckAt: now } : item) });
261
279
  });
262
280
  }
263
281
  #assertLive() { if (this.#stopped)
264
- throw unavailable('管理员 RSS 服务属于已停止的插件实例'); }
265
- async #admit(operation) {
266
- this.#assertLive();
267
- const release = this.#admission.acquire();
268
- if (!release)
269
- throw unavailable('管理员 RSS 服务属于未发布或已退役的 generation');
282
+ throw unavailable('stopped'); }
283
+ async #admit(operation, locale) {
284
+ let release;
270
285
  try {
286
+ this.#assertLive();
287
+ release = this.#admission.acquire();
288
+ if (!release)
289
+ throw unavailable('retired');
271
290
  return await operation();
272
291
  }
292
+ catch (error) {
293
+ throw error instanceof LocalizedTaskError ? error.localize(locale) : error;
294
+ }
273
295
  finally {
274
- release();
296
+ release?.();
275
297
  }
276
298
  }
277
- #snapshot(book) {
299
+ #snapshot(book, locale) {
278
300
  return { revision: book.revision, receipts: book.receipts.map(item => ({ requestId: item.id, taskId: item.taskId, operation: item.operation })),
279
301
  tasks: book.tasks.map(task => ({ id: task.id, ownership: 'administrator', title: `RSS · ${task.url}`.slice(0, 200), target: task.target,
280
302
  state: task.state, createdAt: task.createdAt, ...(task.lastRunAt === null ? {} : { lastRunAt: task.lastRunAt }), parameters: { url: task.url,
281
303
  ...(task.quiet ? { quietTimezone: task.quiet.timezone, quietStart: task.quiet.start, quietEnd: task.quiet.end } : {}) },
282
- detail: `${task.detail}${task.quiet ? `;静默 ${task.quiet.timezone} ${task.quiet.start}–${task.quiet.end}` : ''}${task.pending ? `;${task.state === 'scheduled' ? '待汇总' : '本次摘要'}${task.pending.countCapped ? '至少' : ''}${task.pending.count} 条更新` : ''};实例轮询 ${this.#config.pollCron}${task.lastCheckAt === null ? '' : `;最近抓取 ${new Date(task.lastCheckAt).toISOString()}`};状态不代表平台连接健康`,
304
+ detail: [formatTaskDetail(task, locale), task.quiet ? adminText(locale, 'quietDescription', task.quiet) : '',
305
+ task.pending ? adminText(locale, task.state === 'scheduled' ? 'pendingDescription' : 'summaryDescription', { count: task.pending.countCapped ? adminText(locale, 'countCapped', { count: task.pending.count }) : task.pending.count }) : '',
306
+ adminText(locale, 'pollDescription', { cron: this.#config.pollCron }), task.lastCheckAt === null ? '' : adminText(locale, 'checkedDescription', { at: new Date(task.lastCheckAt).toISOString() }), adminText(locale, 'stateNote')].filter(Boolean).join(locale === 'en' ? '; ' : ';'),
283
307
  actions: task.state === 'scheduled' ? ['pause', 'cancel'] : task.state === 'paused' ? ['update', 'resume', 'cancel'] : task.state === 'unknown' ? ['cancel'] : [],
284
308
  })) };
285
309
  }
@@ -287,13 +311,15 @@ export class AdministratorRssTasks {
287
311
  function parseParameters(value) {
288
312
  if (!value || Array.isArray(value) || Object.keys(value).some(key => !['url', 'quietTimezone', 'quietStart', 'quietEnd'].includes(key))
289
313
  || typeof value.url !== 'string' || value.url.length > 2048)
290
- throw invalid('参数须包含有效 HTTP(S) RSS 地址及可选的三项静默设置');
314
+ throw invalid('invalidParameters');
291
315
  let quiet;
292
316
  try {
293
317
  quiet = parseQuietHours(value);
294
318
  }
295
319
  catch (error) {
296
- throw invalid(error instanceof TypeError ? error.message : '静默设置无效');
320
+ if (error instanceof LocalizedQuietHoursError)
321
+ throw invalid(error.messageKey);
322
+ throw invalid('invalidQuiet');
297
323
  }
298
324
  try {
299
325
  const url = new URL(value.url);
@@ -305,13 +331,13 @@ function parseParameters(value) {
305
331
  return { url: url.href, ...(quiet ? { quiet } : {}) };
306
332
  }
307
333
  catch {
308
- throw invalid('请提供有效 HTTP(S) RSS 地址,不接受 URL 用户名或密码');
334
+ throw invalid('invalidUrl');
309
335
  }
310
336
  }
311
337
  function assertMutation(input) {
312
338
  if (!isUuid(input.requestId) || typeof input.expectedRevision !== 'string'
313
339
  || !input.expectedRevision || input.expectedRevision.length > 128)
314
- throw invalid('操作须包含 UUID requestId 和读取到的 expectedRevision');
340
+ throw invalid('invalidMutation');
315
341
  }
316
342
  function digest(value) { return createHash('sha256').update(JSON.stringify(value)).digest('hex'); }
317
343
  function isUuid(value) { return typeof value === 'string' && UUID.test(value); }
@@ -319,17 +345,17 @@ function isDigest(value) { return typeof value === 'string' && DIGEST.test(value
319
345
  function isTimestamp(value) {
320
346
  return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0 && Number.isFinite(new Date(value).getTime());
321
347
  }
322
- function invalid(message) { return new PluginTaskError('invalid_input', message); }
323
- function conflict(message) { return new PluginTaskError('conflict', message); }
324
- function unavailable(message) { return new PluginTaskError('unavailable', message); }
348
+ function invalid(message) { return new LocalizedTaskError('invalid_input', message); }
349
+ function conflict(message) { return new LocalizedTaskError('conflict', message); }
350
+ function unavailable(message) { return new LocalizedTaskError('unavailable', message); }
325
351
  function assertRevision(book, revision) { if (book.revision !== revision)
326
- throw conflict('订阅状态已变化,请刷新后重新确认'); }
352
+ throw conflict('revision'); }
327
353
  function reconcile(book, id, fingerprint) {
328
354
  const previous = book.receipts.find(item => item.id === id);
329
355
  if (!previous)
330
356
  return false;
331
357
  if (previous.fingerprint !== fingerprint)
332
- throw conflict('同一操作请求 ID 已用于其他内容,禁止重放');
358
+ throw conflict('replayConflict');
333
359
  return true;
334
360
  }
335
361
  function receipt(book, id, fingerprint, taskId, operation) {
@@ -337,7 +363,7 @@ function receipt(book, id, fingerprint, taskId, operation) {
337
363
  }
338
364
  function bounded(book) {
339
365
  if (book.tasks.length > MAX_TASKS || bytes(book) > 60 * 1024)
340
- throw invalid('管理员 RSS 状态达到 8 条或 60 KiB 上限,请先取消并整理订阅');
366
+ throw invalid('capacity');
341
367
  // Reserve future bounded cursors, summary samples and claim metadata at mutation
342
368
  // time. Once accepted, ordinary quiet accumulation cannot exceed the state port.
343
369
  const reserved = { ...book, revision: 'f'.repeat(36), tasks: book.tasks.map(task => !task.quiet || task.state === 'cancelled' || task.state === 'failed' ? task : {
@@ -348,7 +374,7 @@ function bounded(book) {
348
374
  items: Array.from({ length: MAX_PENDING_ITEMS }, () => ({ key: 'f'.repeat(64), title: 'x'.repeat(128), link: 'x'.repeat(384) })) },
349
375
  }) };
350
376
  if (bytes(reserved) > 60 * 1024)
351
- throw invalid('管理员 RSS 状态空间不足以保留静默摘要及去重游标;请先取消并整理订阅,现有数据未改动');
377
+ throw invalid('capacityReserved');
352
378
  return book;
353
379
  }
354
380
  function readBook(value) {
@@ -372,6 +398,7 @@ function readBook(value) {
372
398
  || (task.lastRunAt !== null && !isTimestamp(task.lastRunAt))
373
399
  || (task.claimId !== null && !isUuid(task.claimId)) || (task.state === 'unknown' && (!task.claimId || task.seen === null || task.lastRunAt === null))
374
400
  || (task.seen !== null && (!Array.isArray(task.seen) || task.seen.length > MAX_SEEN || !task.seen.every((key) => typeof key === 'string' && DIGEST.test(key))))
401
+ || (task.locale !== undefined && task.locale !== 'zh-CN' && task.locale !== 'en') || (task.detailKey !== undefined && !isAdminTextKey(task.detailKey))
375
402
  || typeof task.detail !== 'string' || task.detail.length > 1000 || parseParameters({ url: task.url }).url !== task.url)
376
403
  throw new Error('task');
377
404
  if (task.quiet !== undefined) {
@@ -401,7 +428,7 @@ function readBook(value) {
401
428
  return bounded(value);
402
429
  }
403
430
  catch {
404
- throw unavailable('管理员 RSS 持久状态格式无效,已停止管理员轮询与投递;请保留原数据核查');
431
+ throw unavailable('corrupt');
405
432
  }
406
433
  }
407
434
  function withoutQuiet(task) { const { quiet: _quiet, ...rest } = task; return rest; }
@@ -443,13 +470,13 @@ function shortLink(value) {
443
470
  return '';
444
471
  }
445
472
  }
446
- function formatSummary(url, pending, maxItems) {
447
- const lines = [`RSS 静默摘要:累计检测到${pending.countCapped ? '至少' : ''} ${pending.count} 条更新`, `来源:${url}`];
473
+ function formatSummary(url, pending, maxItems, locale = 'zh-CN') {
474
+ const lines = [t(locale, 'summaryHeading', { minimum: pending.countCapped ? t(locale, 'atLeast') : '', count: pending.count }), t(locale, 'source', { url })];
448
475
  const shown = pending.items.slice(0, Math.min(MAX_PENDING_ITEMS, maxItems));
449
476
  for (const item of shown)
450
- lines.push('', item.title || '未命名文章', ...(item.link ? [item.link] : []));
477
+ lines.push('', item.title || t(locale, 'untitled'), ...(item.link ? [item.link] : []));
451
478
  if (pending.count > shown.length || pending.countCapped)
452
- lines.push('', `仅展示 ${shown.length} 条短明细,其余请查看源站;计数基于有界轮询窗口。`);
479
+ lines.push('', t(locale, 'summaryMore', { count: shown.length }));
453
480
  return lines.join('\n');
454
481
  }
455
482
  //# sourceMappingURL=admin-tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-tasks.js","sourceRoot":"","sources":["../src/admin-tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-tasks.js","sourceRoot":"","sources":["../src/admin-tasks.ts"],"names":[],"mappings":"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"}
package/lib/channel.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Locale } from 'zhin.js/i18n';
1
2
  /** A subscription destination uses public Message fields, never CapabilityId internals. */
2
3
  export interface ChannelInfo {
3
4
  adapterName: string;
@@ -10,7 +11,7 @@ export interface ChannelInfo {
10
11
  export declare const CHANNEL_REQUIRED_MESSAGE = "\u8BF7\u5728\u673A\u5668\u4EBA\u79C1\u804A\u3001\u7FA4\u804A\u6216\u9891\u9053\u5185\u6267\u884C\u6B64\u547D\u4EE4\uFF1B\u5F53\u524D\u8C03\u7528\u6CA1\u6709\u6709\u6548\u7684\u8BA2\u9605\u4F1A\u8BDD";
11
12
  export declare const UNSUPPORTED_ADDRESS_MESSAGE = "\u6682\u4E0D\u652F\u6301\u7EBF\u7A0B\uFF0F\u7236\u9891\u9053\u5BFB\u5740\u7684\u8BA2\u9605\uFF0C\u8BF7\u5728\u65E0\u9700\u7EBF\u7A0B\u6216\u7236\u9891\u9053\u4FE1\u606F\u7684\u4F1A\u8BDD\u5185\u6267\u884C";
12
13
  /** Explain rejection without silently flattening a thread/container address. */
13
- export declare function channelSourceError(input: unknown): string;
14
+ export declare function channelSourceError(input: unknown, locale?: Locale): string;
14
15
  /** No IM source means no destination; callers must not invent a global subscription. */
15
16
  export declare function extractChannelInfo(input: unknown): ChannelInfo | null;
16
17
  /** Complete subscription scope, including the bot instance for multi-endpoint adapters. */
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,wBAAwB,2MAAsC,CAAC;AAC5E,eAAO,MAAM,2BAA2B,iNAAuC,CAAC;AAehF,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAoBrE;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO9E"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,2FAA2F;AAE3F,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,wBAAwB,2MAAsC,CAAC;AAC5E,eAAO,MAAM,2BAA2B,iNAAuC,CAAC;AAehF,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAgB,GAAG,MAAM,CAEnF;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAoBrE;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO9E"}
package/lib/channel.js CHANGED
@@ -1,4 +1,4 @@
1
- /** A subscription destination uses public Message fields, never CapabilityId internals. */
1
+ import { rssMessages as t } from './i18n.js';
2
2
  export const CHANNEL_REQUIRED_MESSAGE = '请在机器人私聊、群聊或频道内执行此命令;当前调用没有有效的订阅会话';
3
3
  export const UNSUPPORTED_ADDRESS_MESSAGE = '暂不支持线程/父频道寻址的订阅,请在无需线程或父频道信息的会话内执行';
4
4
  function isRecord(value) {
@@ -12,8 +12,8 @@ function hasUnsupportedAddress(input) {
12
12
  && (input.conversation.parent !== undefined || input.conversation.threadId !== undefined);
13
13
  }
14
14
  /** Explain rejection without silently flattening a thread/container address. */
15
- export function channelSourceError(input) {
16
- return hasUnsupportedAddress(input) ? UNSUPPORTED_ADDRESS_MESSAGE : CHANNEL_REQUIRED_MESSAGE;
15
+ export function channelSourceError(input, locale = 'zh-CN') {
16
+ return t(locale, hasUnsupportedAddress(input) ? 'unsupportedAddress' : 'channelRequired');
17
17
  }
18
18
  /** No IM source means no destination; callers must not invent a global subscription. */
19
19
  export function extractChannelInfo(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAW3F,MAAM,CAAC,MAAM,wBAAwB,GAAG,mCAAmC,CAAC;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,oCAAoC,CAAC;AAEhF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;WACjD,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;AAC9F,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,wBAAwB,CAAC;AAC/F,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,qBAAqB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC9E,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;WACpE,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzF,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,aAAa;QAChC,WAAW,EAAE,KAAK,CAAC,UAAU;QAC7B,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,YAAY,CAAC,EAAE;QAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACtE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;KACnF,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,iBAAiB,CAAC,OAAoB;IACpD,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,UAAU,EAAE,OAAO,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}