@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
package/lib/feed.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Locale } from 'zhin.js/i18n';
1
2
  export interface FeedItem {
2
3
  title: string;
3
4
  link: string;
@@ -25,5 +26,5 @@ export declare function fetchFeed(url: string, timeout?: number): Promise<{
25
26
  title: string;
26
27
  items: FeedItem[];
27
28
  }>;
28
- export declare function formatFeedPreview(title: string, items: FeedItem[]): string;
29
+ export declare function formatFeedPreview(title: string, items: FeedItem[], locale?: Locale): string;
29
30
  //# sourceMappingURL=feed.d.ts.map
package/lib/feed.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,kBAAkB,EAAE,SAKhC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,CAE/E;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC9C;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,SAA6B,GACnC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC,CAiB/C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAW1E"}
1
+ {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAO3C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,kBAAkB,EAAE,SAKhC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,CAE/E;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC9C;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,SAA6B,GACnC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC,CAiB/C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,GAAE,MAAgB,GAAG,MAAM,CAWpG"}
package/lib/feed.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { rssMessages as t } from './i18n.js';
1
2
  /**
2
3
  * RSS feed fetch/preview helpers (no Plugin host).
3
4
  */
@@ -70,20 +71,20 @@ export async function fetchFeed(url, timeout = DEFAULT_RSS_CONFIG.timeout) {
70
71
  }));
71
72
  return { title: (feed.title || url).trim(), items };
72
73
  }
73
- export function formatFeedPreview(title, items) {
74
+ export function formatFeedPreview(title, items, locale = 'zh-CN') {
74
75
  if (items.length === 0)
75
- return `${title}: 暂无内容`;
76
- const lines = [`${title} (共 ${items.length} 条)`];
76
+ return t(locale, 'previewEmpty', { title });
77
+ const lines = [t(locale, 'previewTitle', { title, count: items.length })];
77
78
  for (const item of items.slice(0, 5)) {
78
79
  lines.push('');
79
80
  lines.push(`${item.title}`);
80
81
  if (item.date)
81
- lines.push(` ${new Date(item.date).toLocaleString('zh-CN')}`);
82
+ lines.push(` ${new Date(item.date).toLocaleString(locale)}`);
82
83
  if (item.link)
83
84
  lines.push(` ${item.link}`);
84
85
  }
85
86
  if (items.length > 5)
86
- lines.push(`\n...还有 ${items.length - 5} 条`);
87
+ lines.push(t(locale, 'more', { count: items.length - 5 }));
87
88
  return lines.join('\n');
88
89
  }
89
90
  //# sourceMappingURL=feed.js.map
package/lib/feed.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"feed.js","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feed.js","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"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"}
package/lib/i18n.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const rssMessages: (locale: import("zhin.js").Locale | undefined, key: "notFound" | "noNew" | "toolPreviewEmpty" | "toolPreviewFailed" | "allEmpty" | "allList" | "databaseUnavailable" | "databaseRetry" | "urlRequired" | "httpRequired" | "existing" | "limit" | "loadFailed" | "added" | "empty" | "addHint" | "unknownTitle" | "list" | "notSubscribed" | "noSubscriptions" | "removeUrl" | "removed" | "previewFailed" | "channelRequired" | "unsupportedAddress" | "previewEmpty" | "previewTitle" | "more" | "newItems" | "moreSource" | "checkFailed" | "nothingToCheck" | "pushed" | "notPushed" | "localOnly" | "checked" | "checkedEmpty" | "noFeeds" | "summaryTitle" | "summaryHeading" | "atLeast" | "source" | "untitled" | "summaryMore", values?: import("zhin.js").MessageValues) => string;
2
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,6vBAqKtB,CAAC"}
package/lib/i18n.js ADDED
@@ -0,0 +1,168 @@
1
+ import { createMessages } from 'zhin.js/i18n';
2
+ export const rssMessages = createMessages({
3
+ toolPreviewEmpty: { 'zh-CN': '{title}: 无内容', en: '{title}: No items' },
4
+ toolPreviewFailed: { 'zh-CN': '解析失败: {error}', en: 'Parsing failed: {error}' },
5
+ allEmpty: { 'zh-CN': '暂无任何 RSS 订阅', en: 'There are no RSS subscriptions' },
6
+ allList: { 'zh-CN': 'RSS 订阅总览 ({count} 条):\n{items}', en: 'RSS subscriptions ({count}):\n{items}' },
7
+ "databaseUnavailable": {
8
+ "zh-CN": "RSS 数据库尚未就绪",
9
+ "en": "The RSS database is not ready"
10
+ },
11
+ "databaseRetry": {
12
+ "zh-CN": "RSS 数据库尚未就绪,请稍后重试",
13
+ "en": "The RSS database is not ready; try again later"
14
+ },
15
+ "urlRequired": {
16
+ "zh-CN": "请提供 RSS 源地址",
17
+ "en": "Provide an RSS feed URL"
18
+ },
19
+ "httpRequired": {
20
+ "zh-CN": "请提供有效的 HTTP/HTTPS 地址",
21
+ "en": "Provide a valid HTTP/HTTPS URL"
22
+ },
23
+ "existing": {
24
+ "zh-CN": "当前会话已订阅该源,无需重复添加",
25
+ "en": "This conversation already subscribes to that feed"
26
+ },
27
+ "limit": {
28
+ "zh-CN": "当前会话订阅数已达上限 ({max}),请先取消一些",
29
+ "en": "This conversation has reached its subscription limit ({max}); remove a subscription first"
30
+ },
31
+ "loadFailed": {
32
+ "zh-CN": "无法解析该地址: {error}\n请确认是有效的 RSS/Atom 源",
33
+ "en": "Could not parse this URL: {error}\nCheck that it is a valid RSS/Atom feed"
34
+ },
35
+ "added": {
36
+ "zh-CN": "订阅成功!\n源: {feed}\n新内容将在轮询时推送到本会话(需 OutboundHost)",
37
+ "en": "Subscribed!\nFeed: {feed}\nNew items will be sent to this conversation when polled (requires OutboundHost)"
38
+ },
39
+ "empty": {
40
+ "zh-CN": "当前会话没有订阅任何 RSS 源",
41
+ "en": "This conversation has no RSS subscriptions"
42
+ },
43
+ "addHint": {
44
+ "zh-CN": "使用 {command} <URL> 添加订阅",
45
+ "en": "Use {command} <URL> to subscribe"
46
+ },
47
+ "unknownTitle": {
48
+ "zh-CN": "(未知标题)",
49
+ "en": "(Untitled)"
50
+ },
51
+ "list": {
52
+ "zh-CN": "当前订阅 ({count}/{max}):\n{items}",
53
+ "en": "Subscriptions ({count}/{max}):\n{items}"
54
+ },
55
+ "notSubscribed": {
56
+ "zh-CN": "当前会话未订阅该源",
57
+ "en": "This conversation does not subscribe to that feed"
58
+ },
59
+ "noSubscriptions": {
60
+ "zh-CN": "当前会话没有任何订阅",
61
+ "en": "This conversation has no subscriptions"
62
+ },
63
+ "removeUrl": {
64
+ "zh-CN": "请提供要取消的 RSS 源地址",
65
+ "en": "Provide the RSS feed URL to unsubscribe"
66
+ },
67
+ "notFound": {
68
+ "zh-CN": "未找到该订阅",
69
+ "en": "Subscription not found"
70
+ },
71
+ "removed": {
72
+ "zh-CN": "已取消订阅: {feed}",
73
+ "en": "Unsubscribed: {feed}"
74
+ },
75
+ "previewFailed": {
76
+ "zh-CN": "解析失败: {error}\n请确认是有效的 RSS/Atom 地址",
77
+ "en": "Parsing failed: {error}\nCheck that it is a valid RSS/Atom URL"
78
+ },
79
+ "channelRequired": {
80
+ "zh-CN": "请在机器人私聊、群聊或频道内执行此命令;当前调用没有有效的订阅会话",
81
+ "en": "Run this command in a bot private chat, group or channel; this invocation has no valid subscription conversation"
82
+ },
83
+ "unsupportedAddress": {
84
+ "zh-CN": "暂不支持线程/父频道寻址的订阅,请在无需线程或父频道信息的会话内执行",
85
+ "en": "Thread or parent-channel subscription addresses are not supported; use a conversation that does not require them"
86
+ },
87
+ "previewEmpty": {
88
+ "zh-CN": "{title}: 暂无内容",
89
+ "en": "{title}: No items"
90
+ },
91
+ "previewTitle": {
92
+ "zh-CN": "{title} (共 {count} 条)",
93
+ "en": "{title} ({count} items)"
94
+ },
95
+ "more": {
96
+ "zh-CN": "\n...还有 {count} 条",
97
+ "en": "\n...{count} more items"
98
+ },
99
+ "newItems": {
100
+ "zh-CN": "{title} 有 {count} 条新内容:",
101
+ "en": "{title}: {count} new items:"
102
+ },
103
+ "moreSource": {
104
+ "zh-CN": "\n...还有 {count} 条,请查看源站",
105
+ "en": "\n...{count} more items; visit the source website"
106
+ },
107
+ "noNew": {
108
+ "zh-CN": "{title}: 无新内容",
109
+ "en": "{title}: No new items"
110
+ },
111
+ "checkFailed": {
112
+ "zh-CN": "{url}: 检查失败 — {error}",
113
+ "en": "{url}: Check failed — {error}"
114
+ },
115
+ "nothingToCheck": {
116
+ "zh-CN": "没有可检查的订阅",
117
+ "en": "There are no subscriptions to check"
118
+ },
119
+ "pushed": {
120
+ "zh-CN": ",已推送 {count} 个会话",
121
+ "en": ", sent to {count} conversations"
122
+ },
123
+ "notPushed": {
124
+ "zh-CN": ",无出站推送",
125
+ "en": ", no outbound delivery"
126
+ },
127
+ "localOnly": {
128
+ "zh-CN": "(未装配 OutboundHost,仅本地标记)",
129
+ "en": " (OutboundHost is not configured; items were only marked locally)"
130
+ },
131
+ "checked": {
132
+ "zh-CN": "检查完成,共 {count} 条新内容{pushNote}",
133
+ "en": "Check complete: {count} new items{pushNote}"
134
+ },
135
+ "checkedEmpty": {
136
+ "zh-CN": "检查完成,暂无新内容",
137
+ "en": "Check complete: no new items"
138
+ },
139
+ "noFeeds": {
140
+ "zh-CN": "暂无任何 RSS 订阅",
141
+ "en": "There are no RSS subscriptions"
142
+ },
143
+ "summaryTitle": {
144
+ "zh-CN": "RSS 静默摘要",
145
+ "en": "RSS quiet-hours digest"
146
+ },
147
+ "summaryHeading": {
148
+ "zh-CN": "RSS 静默摘要:累计检测到{minimum} {count} 条更新",
149
+ "en": "RSS quiet-hours digest: detected {minimum} {count} updates"
150
+ },
151
+ "atLeast": {
152
+ "zh-CN": "至少",
153
+ "en": "at least"
154
+ },
155
+ "source": {
156
+ "zh-CN": "来源:{url}",
157
+ "en": "Source: {url}"
158
+ },
159
+ "untitled": {
160
+ "zh-CN": "未命名文章",
161
+ "en": "Untitled article"
162
+ },
163
+ "summaryMore": {
164
+ "zh-CN": "仅展示 {count} 条短明细,其余请查看源站;计数基于有界轮询窗口。",
165
+ "en": "Showing {count} short items; visit the source for the rest. Counts are based on the bounded polling window."
166
+ }
167
+ });
168
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;IACxC,gBAAgB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,mBAAmB,EAAE;IACtE,iBAAiB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,yBAAyB,EAAE;IAC9E,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,gCAAgC,EAAE;IAC1E,OAAO,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE,EAAE,EAAE,uCAAuC,EAAE;IACnG,qBAAqB,EAAE;QACrB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,+BAA+B;KACtC;IACD,eAAe,EAAE;QACf,OAAO,EAAE,mBAAmB;QAC5B,IAAI,EAAE,gDAAgD;KACvD;IACD,aAAa,EAAE;QACb,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,yBAAyB;KAChC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,sBAAsB;QAC/B,IAAI,EAAE,gCAAgC;KACvC;IACD,UAAU,EAAE;QACV,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,mDAAmD;KAC1D;IACD,OAAO,EAAE;QACP,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,2FAA2F;KAClG;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,sCAAsC;QAC/C,IAAI,EAAE,2EAA2E;KAClF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,kDAAkD;QAC3D,IAAI,EAAE,4GAA4G;KACnH;IACD,OAAO,EAAE;QACP,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,4CAA4C;KACnD;IACD,SAAS,EAAE;QACT,OAAO,EAAE,yBAAyB;QAClC,IAAI,EAAE,kCAAkC;KACzC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;KACnB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,gCAAgC;QACzC,IAAI,EAAE,yCAAyC;KAChD;IACD,eAAe,EAAE;QACf,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,mDAAmD;KAC1D;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,wCAAwC;KAC/C;IACD,WAAW,EAAE;QACX,OAAO,EAAE,iBAAiB;QAC1B,IAAI,EAAE,yCAAyC;KAChD;IACD,UAAU,EAAE;QACV,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,wBAAwB;KAC/B;IACD,SAAS,EAAE;QACT,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,sBAAsB;KAC7B;IACD,eAAe,EAAE;QACf,OAAO,EAAE,oCAAoC;QAC7C,IAAI,EAAE,gEAAgE;KACvE;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,mCAAmC;QAC5C,IAAI,EAAE,kHAAkH;KACzH;IACD,oBAAoB,EAAE;QACpB,OAAO,EAAE,oCAAoC;QAC7C,IAAI,EAAE,kHAAkH;KACzH;IACD,cAAc,EAAE;QACd,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,mBAAmB;KAC1B;IACD,cAAc,EAAE;QACd,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,yBAAyB;KAChC;IACD,MAAM,EAAE;QACN,OAAO,EAAE,mBAAmB;QAC5B,IAAI,EAAE,yBAAyB;KAChC;IACD,UAAU,EAAE;QACV,OAAO,EAAE,yBAAyB;QAClC,IAAI,EAAE,6BAA6B;KACpC;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,yBAAyB;QAClC,IAAI,EAAE,mDAAmD;KAC1D;IACD,OAAO,EAAE;QACP,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,uBAAuB;KAC9B;IACD,aAAa,EAAE;QACb,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,+BAA+B;KACtC;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,qCAAqC;KAC5C;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,iCAAiC;KACxC;IACD,WAAW,EAAE;QACX,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,wBAAwB;KAC/B;IACD,WAAW,EAAE;QACX,OAAO,EAAE,0BAA0B;QACnC,IAAI,EAAE,mEAAmE;KAC1E;IACD,SAAS,EAAE;QACT,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,6CAA6C;KACpD;IACD,cAAc,EAAE;QACd,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,8BAA8B;KACrC;IACD,SAAS,EAAE;QACT,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,gCAAgC;KACvC;IACD,cAAc,EAAE;QACd,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,wBAAwB;KAC/B;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,qCAAqC;QAC9C,IAAI,EAAE,4DAA4D;KACnE;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU;KACjB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,eAAe;KACtB;IACD,UAAU,EAAE;QACV,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,kBAAkB;KACzB;IACD,aAAa,EAAE;QACb,OAAO,EAAE,sCAAsC;QAC/C,IAAI,EAAE,6GAA6G;KACpH;CACF,CAAC,CAAC"}
package/lib/poll.d.ts CHANGED
@@ -1,9 +1,10 @@
1
+ import { type Locale } from 'zhin.js/i18n';
1
2
  /**
2
3
  * Feed poll helpers: detect new items; optional OutboundHost push to subscribers.
3
4
  */
4
5
  import { type FeedItem } from './feed.js';
5
6
  import type { RssRuntime } from './runtime.js';
6
- export declare function formatNewItems(feedTitle: string, items: FeedItem[], maxItems: number): string;
7
+ export declare function formatNewItems(feedTitle: string, items: FeedItem[], maxItems: number, locale?: Locale): string;
7
8
  export declare function markItemsSeen(runtime: RssRuntime, feedUrl: string, items: FeedItem[]): Promise<void>;
8
9
  export interface CheckResult {
9
10
  readonly text: string;
@@ -16,6 +17,7 @@ export interface CheckResult {
16
17
  */
17
18
  export declare function checkSubscriptions(runtime: RssRuntime, options: {
18
19
  urls: readonly string[];
20
+ locale?: Locale;
19
21
  }): Promise<CheckResult>;
20
22
  /**
21
23
  * Periodically clean seen records older than 7 days.
package/lib/poll.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../src/poll.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY7F;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1G;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAiCD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;IACrE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuCvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAO5E"}
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1D;;GAEG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAgB,GAAG,MAAM,CAYvH;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1G;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAkCD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;IACrE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwCvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAQ5E"}
package/lib/poll.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { resolveLocale } from 'zhin.js/i18n';
2
+ import { rssMessages as t } from './i18n.js';
1
3
  /**
2
4
  * Feed poll helpers: detect new items; optional OutboundHost push to subscribers.
3
5
  */
@@ -6,8 +8,8 @@ import { getRssSeen, getRssSubs } from './db-store.js';
6
8
  function ts() {
7
9
  return new Date().toISOString();
8
10
  }
9
- export function formatNewItems(feedTitle, items, maxItems) {
10
- const lines = [`${feedTitle} 有 ${items.length} 条新内容:`];
11
+ export function formatNewItems(feedTitle, items, maxItems, locale = 'zh-CN') {
12
+ const lines = [t(locale, 'newItems', { title: feedTitle, count: items.length })];
11
13
  for (const item of items.slice(0, maxItems)) {
12
14
  lines.push('');
13
15
  lines.push(`${item.title}`);
@@ -17,7 +19,7 @@ export function formatNewItems(feedTitle, items, maxItems) {
17
19
  lines.push(item.link);
18
20
  }
19
21
  if (items.length > maxItems) {
20
- lines.push(`\n...还有 ${items.length - maxItems} 条,请查看源站`);
22
+ lines.push(t(locale, 'moreSource', { count: items.length - maxItems }));
21
23
  }
22
24
  return lines.join('\n');
23
25
  }
@@ -37,7 +39,7 @@ export async function markItemsSeen(runtime, feedUrl, items) {
37
39
  }
38
40
  }
39
41
  }
40
- async function pushToSubscribers(runtime, feedUrl, content) {
42
+ async function pushToSubscribers(runtime, feedUrl, feedTitle, items) {
41
43
  const push = runtime.outbound;
42
44
  const Subs = getRssSubs(runtime.db);
43
45
  if (!push || !Subs)
@@ -60,7 +62,8 @@ async function pushToSubscribers(runtime, feedUrl, content) {
60
62
  endpointKey,
61
63
  channelType,
62
64
  channelId,
63
- content,
65
+ locale: resolveLocale(sub.locale),
66
+ content: formatNewItems(feedTitle, items, runtime.config.maxItems, resolveLocale(sub.locale)),
64
67
  });
65
68
  pushed += 1;
66
69
  }
@@ -75,10 +78,11 @@ async function pushToSubscribers(runtime, feedUrl, content) {
75
78
  * When OutboundHost is wired, pushes formatted text to each subscriber channel.
76
79
  */
77
80
  export async function checkSubscriptions(runtime, options) {
81
+ const locale = resolveLocale(options.locale);
78
82
  const Seen = getRssSeen(runtime.db);
79
83
  const Subs = getRssSubs(runtime.db);
80
84
  if (!Seen || !Subs) {
81
- return { text: 'RSS 数据库尚未就绪', totalNew: 0, pushed: 0 };
85
+ return { text: t(locale, 'databaseUnavailable'), totalNew: 0, pushed: 0 };
82
86
  }
83
87
  const parts = [];
84
88
  let totalNew = 0;
@@ -90,27 +94,27 @@ export async function checkSubscriptions(runtime, options) {
90
94
  const seenGuids = new Set(seenRows.map((r) => String(r.item_guid ?? '')));
91
95
  const newItems = items.filter((item) => item.guid && !seenGuids.has(item.guid));
92
96
  if (newItems.length === 0) {
93
- parts.push(`${title || url}: 无新内容`);
97
+ parts.push(t(locale, 'noNew', { title: title || url }));
94
98
  continue;
95
99
  }
96
100
  await markItemsSeen(runtime, url, newItems);
97
101
  totalNew += newItems.length;
98
- const body = formatNewItems(title || url, newItems, runtime.config.maxItems);
102
+ const body = formatNewItems(title || url, newItems, runtime.config.maxItems, locale);
99
103
  parts.push(body);
100
- pushed += await pushToSubscribers(runtime, url, body);
104
+ pushed += await pushToSubscribers(runtime, url, title || url, newItems);
101
105
  }
102
106
  catch (e) {
103
- parts.push(`${url}: 检查失败 — ${e.message}`);
107
+ parts.push(t(locale, 'checkFailed', { url, error: e.message }));
104
108
  }
105
109
  }
106
110
  if (parts.length === 0)
107
- return { text: '没有可检查的订阅', totalNew: 0, pushed: 0 };
111
+ return { text: t(locale, 'nothingToCheck'), totalNew: 0, pushed: 0 };
108
112
  const pushNote = runtime.outbound
109
- ? (pushed > 0 ? `,已推送 ${pushed} 个会话` : ',无出站推送')
110
- : '(未装配 OutboundHost,仅本地标记)';
113
+ ? (pushed > 0 ? t(locale, 'pushed', { count: pushed }) : t(locale, 'notPushed'))
114
+ : t(locale, 'localOnly');
111
115
  const header = totalNew > 0
112
- ? `检查完成,共 ${totalNew} 条新内容${pushNote}`
113
- : '检查完成,暂无新内容';
116
+ ? t(locale, 'checked', { count: totalNew, pushNote })
117
+ : t(locale, 'checkedEmpty');
114
118
  return { text: `${header}\n\n${parts.join('\n\n')}`, totalNew, pushed };
115
119
  }
116
120
  /**
@@ -140,13 +144,14 @@ export async function cleanOldSeen(runtime) {
140
144
  * Poll all unique feed URLs across subscriptions.
141
145
  */
142
146
  export async function pollAllFeeds(runtime) {
147
+ const locale = resolveLocale(runtime.locale);
143
148
  const Subs = getRssSubs(runtime.db);
144
149
  if (!Subs)
145
- return { text: 'RSS 数据库尚未就绪', totalNew: 0, pushed: 0 };
150
+ return { text: t(locale, 'databaseUnavailable'), totalNew: 0, pushed: 0 };
146
151
  const all = await Subs.select();
147
152
  const urls = [...new Set(all.map((s) => String(s.url ?? '')).filter(Boolean))];
148
153
  if (urls.length === 0)
149
- return { text: '暂无任何 RSS 订阅', totalNew: 0, pushed: 0 };
150
- return checkSubscriptions(runtime, { urls });
154
+ return { text: t(locale, 'noFeeds'), totalNew: 0, pushed: 0 };
155
+ return checkSubscriptions(runtime, { urls, locale });
151
156
  }
152
157
  //# sourceMappingURL=poll.js.map
package/lib/poll.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"poll.js","sourceRoot":"","sources":["../src/poll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../src/poll.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ import { type AdminTextKey } from './admin-i18n.js';
2
+ export declare class LocalizedQuietHoursError extends TypeError {
3
+ readonly messageKey: AdminTextKey;
4
+ constructor(messageKey: AdminTextKey);
5
+ }
1
6
  export type RssQuietHours = {
2
7
  readonly timezone: string;
3
8
  readonly start: string;
@@ -1 +1 @@
1
- {"version":3,"file":"quiet-hours.d.ts","sourceRoot":"","sources":["../src/quiet-hours.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAYxG;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAK3E"}
1
+ {"version":3,"file":"quiet-hours.d.ts","sourceRoot":"","sources":["../src/quiet-hours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,qBAAa,wBAAyB,SAAQ,SAAS;IACrD,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;gBACtB,UAAU,EAAE,YAAY;CACrC;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAYxG;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAK3E"}
@@ -1,21 +1,26 @@
1
+ import { adminText } from './admin-i18n.js';
2
+ export class LocalizedQuietHoursError extends TypeError {
3
+ messageKey;
4
+ constructor(messageKey) { super(adminText('zh-CN', messageKey)); this.messageKey = messageKey; }
5
+ }
1
6
  /** Flat provider parameters keep the generic task form editable, including clearing all three inputs. */
2
7
  export function parseQuietHours(parameters) {
3
8
  const values = [parameters.quietTimezone, parameters.quietStart, parameters.quietEnd];
4
9
  if (values.every(value => value === undefined || (typeof value === 'string' && !value.trim())))
5
10
  return undefined;
6
11
  if (!values.every(value => typeof value === 'string' && value.trim()))
7
- throw new TypeError('静默时区、开始和结束时间须全部填写;三项全部留空关闭静默');
12
+ throw new LocalizedQuietHoursError('quietFields');
8
13
  const [timezone, start, end] = values.map(value => value.trim());
9
14
  if (timezone.length > 128 || !/^[A-Za-z][A-Za-z0-9_+/-]*$/u.test(timezone))
10
- throw new TypeError('请填写有效 IANA 时区,如 Asia/Shanghai;不能使用 +08:00 等偏移');
15
+ throw new LocalizedQuietHoursError('quietZoneOffset');
11
16
  try {
12
17
  new Intl.DateTimeFormat('en-GB', { timeZone: timezone }).format(0);
13
18
  }
14
19
  catch {
15
- throw new TypeError('请填写有效 IANA 时区,如 Asia/Shanghai');
20
+ throw new LocalizedQuietHoursError('quietZone');
16
21
  }
17
22
  if (!/^([01]\d|2[0-3]):[0-5]\d$/u.test(start) || !/^([01]\d|2[0-3]):[0-5]\d$/u.test(end) || start === end) {
18
- throw new TypeError('静默时间须为 HH:mm(24 小时制),开始和结束不能相同');
23
+ throw new LocalizedQuietHoursError('quietClock');
19
24
  }
20
25
  return Object.freeze({ timezone, start, end });
21
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quiet-hours.js","sourceRoot":"","sources":["../src/quiet-hours.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quiet-hours.js","sourceRoot":"","sources":["../src/quiet-hours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAE/D,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IAC5C,UAAU,CAAe;IAClC,YAAY,UAAwB,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC;CAC/G;AAQD,yGAAyG;AACzG,MAAM,UAAU,eAAe,CAAC,UAA6C;IAC3E,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAAE,MAAM,IAAI,wBAAwB,CAAC,aAAa,CAAC,CAAC;IACzH,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,KAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAClI,IAAI,CAAC;QAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAC3E,MAAM,CAAC;QAAC,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAAC,CAAC;IAC1D,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAC1G,MAAM,IAAI,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,MAAqB,EAAE,EAAU;IAChE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACtJ,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAE,CAAC,KAAK,CAAC,CAAC;IACxI,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC;AACzF,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,IAAY,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/lib/runtime.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Locale } from 'zhin.js/i18n';
1
2
  import type { RssConfig } from './feed.js';
2
3
  import type { RssMemoryDb } from './memory-store.js';
3
4
  import type { ChannelInfo } from './channel.js';
@@ -7,8 +8,10 @@ export type RssOutboundPush = (input: {
7
8
  readonly channelType: ChannelInfo['channelType'];
8
9
  readonly channelId: string;
9
10
  readonly content: string;
11
+ readonly locale?: Locale;
10
12
  }) => Promise<void>;
11
13
  export interface RssRuntime {
14
+ readonly locale?: Locale;
12
15
  readonly db: RssMemoryDb;
13
16
  readonly config: Readonly<RssConfig>;
14
17
  readonly outbound: RssOutboundPush | null;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,eAAe,qCAG3B,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,eAAe,qCAG3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAmBtC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CACxC,kBAAkB,EAClB,0BAA0B,CAC3B,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAqBtC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CACxC,kBAAkB,EAClB,0BAA0B,CAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACiF,KAAK,kBAAkB,EAA6B,MAAM,wBAAwB,CAAC;AAsD3K,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,sCAEvE"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACiF,KAAK,kBAAkB,EAA6B,MAAM,wBAAwB,CAAC;AAuD3K,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,sCAEvE"}
package/lib/storage.js CHANGED
@@ -7,9 +7,10 @@ const child = { id: { type: 'text', length: 80, primary: true }, task_id: { type
7
7
  const codec = {
8
8
  key: ADMIN_RSS_STATE_KEY,
9
9
  header: { table: 'admin_rss_book', definition: { version: { type: 'integer', nullable: true }, revision: text } },
10
+ addColumns: { [tasks]: ['locale', 'detail_key'] },
10
11
  tables: {
11
12
  [tasks]: { id: { type: 'text', length: 36, primary: true }, position: { type: 'integer', nullable: false }, ...TASK_TARGET_COLUMNS,
12
- creation: text, version: text, url: text, state: text, created_at: time, claim_id: text, last_check_at: time, last_run_at: time, detail: text,
13
+ creation: text, version: text, locale: text, url: text, state: text, created_at: time, claim_id: text, last_check_at: time, last_run_at: time, detail: text, detail_key: text,
13
14
  seen_known: { type: 'boolean', nullable: false }, quiet_timezone: text, quiet_start: text, quiet_end: text,
14
15
  pending_kind: text, pending_from: time, pending_to: time, pending_count: { type: 'integer', nullable: true },
15
16
  pending_capped: { type: 'boolean', nullable: true } },
@@ -23,8 +24,8 @@ const codec = {
23
24
  throw new Error('Unsupported RSS book; original state was preserved');
24
25
  return { header: { version: book.version, revision: book.revision }, rows: {
25
26
  [tasks]: book.tasks.map((task, position) => ({ id: task.id, position, ...encodeTaskTarget(task.target),
26
- creation: task.creation, version: task.version, url: encodeStorageIdentity(task.url), state: task.state, created_at: task.createdAt,
27
- claim_id: task.claimId, last_check_at: task.lastCheckAt, last_run_at: task.lastRunAt, detail: encodeStorageIdentity(task.detail),
27
+ creation: task.creation, version: task.version, locale: task.locale ?? 'zh-CN', url: encodeStorageIdentity(task.url), state: task.state, created_at: task.createdAt,
28
+ claim_id: task.claimId, last_check_at: task.lastCheckAt, last_run_at: task.lastRunAt, detail: encodeStorageIdentity(task.detail), detail_key: task.detailKey ?? null,
28
29
  seen_known: task.seen !== null, quiet_timezone: task.quiet?.timezone ?? null, quiet_start: task.quiet?.start ?? null, quiet_end: task.quiet?.end ?? null,
29
30
  pending_kind: task.pending === undefined ? 'absent' : task.pending === null ? 'null' : 'value',
30
31
  pending_from: task.pending?.from ?? null, pending_to: task.pending?.to ?? null,
@@ -38,8 +39,8 @@ const codec = {
38
39
  decode(header, rows) {
39
40
  return { version: Number(header.version), revision: String(header.revision), receipts: decodeTaskReceipts(rows[receipts]),
40
41
  tasks: rows[tasks].map(row => ({ id: String(row.id), target: decodeTaskTarget(row), creation: String(row.creation), version: String(row.version),
41
- url: decodeStorageIdentity(row.url), state: String(row.state), createdAt: Number(row.created_at), claimId: row.claim_id == null ? null : String(row.claim_id),
42
- lastCheckAt: row.last_check_at == null ? null : Number(row.last_check_at), lastRunAt: row.last_run_at == null ? null : Number(row.last_run_at), detail: decodeStorageIdentity(row.detail),
42
+ url: decodeStorageIdentity(row.url), locale: row.locale == null ? 'zh-CN' : String(row.locale), state: String(row.state), createdAt: Number(row.created_at), claimId: row.claim_id == null ? null : String(row.claim_id),
43
+ lastCheckAt: row.last_check_at == null ? null : Number(row.last_check_at), lastRunAt: row.last_run_at == null ? null : Number(row.last_run_at), detail: decodeStorageIdentity(row.detail), ...(row.detail_key == null ? {} : { detailKey: String(row.detail_key) }),
43
44
  seen: row.seen_known ? rows[seen].filter(item => item.task_id === row.id).map(item => decodeStorageIdentity(item.item_key)) : null,
44
45
  ...(row.quiet_timezone == null ? {} : { quiet: { timezone: String(row.quiet_timezone), start: String(row.quiet_start), end: String(row.quiet_end) } }),
45
46
  ...(row.pending_kind === 'absent' ? {} : { pending: row.pending_kind === 'null' ? null : {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}