@zhin.js/plugin-60s 0.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 凉菜
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # @zhin.js/plugin-60s
2
+
3
+ 60s API 聚合插件 —— 基于 [60s](https://github.com/vikiboss/60s) 项目,为 Zhin.js 提供 17 种实用 API 工具。
4
+
5
+ 每个功能同时注册为 **聊天命令** 和 **AI 工具**,支持命令触发和 AI Agent 智能调用。
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ npm install @zhin.js/plugin-60s
11
+ # 或
12
+ pnpm add @zhin.js/plugin-60s
13
+ ```
14
+
15
+ ## 配置
16
+
17
+ 在 `zhin.config.yml` 中添加插件:
18
+
19
+ ```yaml
20
+ plugins:
21
+ 60s:
22
+ apiBase: https://60s.viki.moe # 可选,默认官方地址
23
+ ```
24
+
25
+ ## 功能列表
26
+
27
+ | 命令 | 别名 | 说明 |
28
+ |------|------|------|
29
+ | `/60s` | 新闻、今日新闻、60秒 | 每日60秒新闻 |
30
+ | `/weather <城市>` | 天气、tq | 天气查询 |
31
+ | `/weibo [数量]` | 微博热搜、wb | 微博热搜榜 |
32
+ | `/zhihu [数量]` | 知乎热榜、zh | 知乎热榜 |
33
+ | `/douyin [数量]` | 抖音热搜、dy | 抖音热搜榜 |
34
+ | `/toutiao [数量]` | 头条热搜、tt | 头条热搜榜 |
35
+ | `/hitokoto [类型]` | 一言、每日一句、yy | 随机一言 |
36
+ | `/moyu` | 摸鱼、摸鱼日历 | 摸鱼日历 |
37
+ | `/ip [地址]` | IP查询 | IP 地理位置查询 |
38
+ | `/bing` | 必应、每日壁纸 | Bing 每日壁纸 |
39
+ | `/gold` | 金价、黄金价格、jj | 今日金价 |
40
+ | `/fuel [省份]` | 油价、yj | 今日油价 |
41
+ | `/exchange [源] [目标]` | 汇率、hl | 货币汇率查询 |
42
+ | `/fanyi <文本> [语言]` | 翻译、fy | 文本翻译 |
43
+ | `/history` | 历史上的今天、历史 | 历史上的今天 |
44
+ | `/kfc` | 疯狂星期四、v50 | KFC 疯狂星期四文案 |
45
+ | `/duanzi` | 段子、joke | 随机段子 |
46
+
47
+ ## AI 工具集成
48
+
49
+ 所有工具均标记了 `tags` 和 `keywords`,支持 `@zhin.js/core` 内置 AI 的程序化工具过滤。用户通过自然语言即可触发对应工具,无需记忆命令格式:
50
+
51
+ - "今天的新闻是什么" → 自动调用 60s 新闻
52
+ - "北京天气怎么样" → 自动调用天气查询
53
+ - "微博有什么热搜" → 自动调用微博热搜
54
+
55
+ ## API 来源
56
+
57
+ 本插件使用 [60s API](https://60s.viki.moe) 提供的公开接口,感谢 [vikiboss](https://github.com/vikiboss) 的开源项目。
58
+
59
+ ## License
60
+
61
+ MIT
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/lib/index.js ADDED
@@ -0,0 +1,448 @@
1
+ /**
2
+ * @zhin.js/plugin-60s
3
+ *
4
+ * 60s API 聚合插件 —— 基于 https://github.com/vikiboss/60s
5
+ *
6
+ * 提供多种实用 API 功能,每个功能同时注册为:
7
+ * - 聊天命令(/60s, /天气 北京, /微博 …)
8
+ * - AI 工具(Agent 可通过关键词自动匹配并调用)
9
+ *
10
+ * 功能列表:
11
+ * 60s新闻 · 天气 · 微博热搜 · 知乎热榜 · 抖音热搜 · 头条热搜
12
+ * 一言 · 摸鱼日历 · IP查询 · Bing壁纸 · 金价 · 油价
13
+ * 汇率 · 翻译 · 历史上的今天 · KFC文案 · 段子
14
+ *
15
+ * 配置方式(zhin.config.yml):
16
+ * ```yaml
17
+ * plugins:
18
+ * 60s:
19
+ * apiBase: https://60s.viki.moe
20
+ * ```
21
+ */
22
+ import { usePlugin, ZhinTool } from 'zhin.js';
23
+ const plugin = usePlugin();
24
+ const { logger, root } = plugin;
25
+ const configService = root.inject('config');
26
+ const appConfig = configService?.get('zhin.config.yml') || {};
27
+ const config = {
28
+ apiBase: 'https://60s.viki.moe',
29
+ ...appConfig['60s'],
30
+ };
31
+ const API_BASE = config.apiBase || 'https://60s.viki.moe';
32
+ logger.debug(`[60s] API 地址: ${API_BASE}`);
33
+ // ─── 通用请求 ────────────────────────────────────────────────────────────────
34
+ async function fetchApi(endpoint, params) {
35
+ const url = new URL(`${API_BASE}/v2${endpoint}`);
36
+ if (params) {
37
+ Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
38
+ }
39
+ logger.debug(`[60s] 请求: ${url.toString()}`);
40
+ const res = await fetch(url.toString());
41
+ const data = (await res.json());
42
+ if (data.error)
43
+ throw new Error(data.error);
44
+ if (data.code !== undefined && data.code !== 200 && data.code !== 0) {
45
+ throw new Error(data.message || data.msg || `API 错误: ${data.code}`);
46
+ }
47
+ return data.data ?? data;
48
+ }
49
+ // ─── 工具函数 ────────────────────────────────────────────────────────────────
50
+ function formatList(items, limit = 10) {
51
+ return items
52
+ .slice(0, limit)
53
+ .map((item, i) => {
54
+ const title = item.title || item.name || item.word || item;
55
+ const hot = item.hot ? ` 🔥${item.hot}` : '';
56
+ return `${i + 1}. ${title}${hot}`;
57
+ })
58
+ .join('\n');
59
+ }
60
+ // ═══════════════════════════════════════════════════════════════════════════════
61
+ // 工具定义(ZhinTool 链式风格 — 同时注册命令 + AI 工具)
62
+ // ═══════════════════════════════════════════════════════════════════════════════
63
+ // ── 60 秒新闻 ────────────────────────────────────────────────────────────────
64
+ const newsTool = new ZhinTool('60s_news')
65
+ .desc('获取每日60秒新闻,快速了解今日要闻')
66
+ .tag('新闻', '资讯', '60s')
67
+ .keyword('60s', '新闻', '今日新闻', '60秒', '每日新闻', '读懂世界')
68
+ .alias('新闻', '今日新闻', '60秒')
69
+ .usage('获取今日60秒新闻')
70
+ .examples('/60s')
71
+ .execute(async () => {
72
+ const data = await fetchApi('/60s');
73
+ const lines = [`📰 今日60秒新闻 (${data.date || ''})`, ''];
74
+ if (data.news && Array.isArray(data.news)) {
75
+ lines.push(...data.news.map((n, i) => `${i + 1}. ${n}`));
76
+ }
77
+ if (data.tip)
78
+ lines.push('', `💡 ${data.tip}`);
79
+ return lines.join('\n');
80
+ });
81
+ // ── 天气 ──────────────────────────────────────────────────────────────────────
82
+ const weatherTool = new ZhinTool('weather')
83
+ .desc('查询指定城市的当前天气信息')
84
+ .tag('天气', '生活', '查询')
85
+ .keyword('天气', '气温', '温度', '下雨', '晴天', '阴天', 'weather')
86
+ .alias('天气', 'tq')
87
+ .usage('查询城市天气')
88
+ .examples('/weather 成都', '/天气 北京')
89
+ .param('city', { type: 'string', description: '城市名称,如"成都"、"北京"' }, true)
90
+ .execute(async (args) => {
91
+ const data = await fetchApi('/weather', { query: args.city });
92
+ const w = data.weather;
93
+ const aq = data.air_quality;
94
+ const loc = data.location;
95
+ const lines = [
96
+ `🌤️ ${loc?.name || args.city} 天气`,
97
+ '',
98
+ `🌡️ 温度: ${w.temperature}°C`,
99
+ `☁️ 天气: ${w.condition}`,
100
+ `💧 湿度: ${w.humidity}%`,
101
+ `💨 风: ${w.wind_direction} ${w.wind_power}`,
102
+ ];
103
+ if (aq)
104
+ lines.push(`🌬️ 空气: ${aq.quality} (AQI ${aq.aqi})`);
105
+ return lines.join('\n');
106
+ });
107
+ // ── 微博热搜 ──────────────────────────────────────────────────────────────────
108
+ const weiboTool = new ZhinTool('weibo_hot')
109
+ .desc('获取微博热搜榜')
110
+ .tag('热搜', '社交', '微博')
111
+ .keyword('微博', '热搜', 'weibo', 'wb')
112
+ .alias('微博热搜', 'wb')
113
+ .usage('获取微博热搜')
114
+ .examples('/weibo', '/weibo 20')
115
+ .param('limit', { type: 'number', description: '返回条数,默认10条' })
116
+ .execute(async (args) => {
117
+ const data = await fetchApi('/weibo');
118
+ return ['🔥 微博热搜', '', formatList(data, args.limit || 10)].join('\n');
119
+ });
120
+ // ── 知乎热榜 ──────────────────────────────────────────────────────────────────
121
+ const zhihuTool = new ZhinTool('zhihu_hot')
122
+ .desc('获取知乎热榜')
123
+ .tag('热搜', '社交', '知乎')
124
+ .keyword('知乎', '热榜', 'zhihu', 'zh')
125
+ .alias('知乎热榜', 'zh')
126
+ .usage('获取知乎热榜')
127
+ .examples('/zhihu', '/zhihu 20')
128
+ .param('limit', { type: 'number', description: '返回条数,默认10条' })
129
+ .execute(async (args) => {
130
+ const data = await fetchApi('/zhihu');
131
+ return ['🔥 知乎热榜', '', formatList(data, args.limit || 10)].join('\n');
132
+ });
133
+ // ── 抖音热搜 ──────────────────────────────────────────────────────────────────
134
+ const douyinTool = new ZhinTool('douyin_hot')
135
+ .desc('获取抖音热搜榜')
136
+ .tag('热搜', '短视频', '抖音')
137
+ .keyword('抖音', '热搜', 'douyin', 'dy')
138
+ .alias('抖音热搜', 'dy')
139
+ .usage('获取抖音热搜')
140
+ .examples('/douyin', '/douyin 20')
141
+ .param('limit', { type: 'number', description: '返回条数,默认10条' })
142
+ .execute(async (args) => {
143
+ const data = await fetchApi('/douyin');
144
+ return ['🔥 抖音热搜', '', formatList(data, args.limit || 10)].join('\n');
145
+ });
146
+ // ── 头条热搜 ──────────────────────────────────────────────────────────────────
147
+ const toutiaoTool = new ZhinTool('toutiao_hot')
148
+ .desc('获取今日头条热搜榜')
149
+ .tag('热搜', '资讯', '头条')
150
+ .keyword('头条', '今日头条', '热搜', 'toutiao', 'tt')
151
+ .alias('头条热搜', 'tt')
152
+ .usage('获取头条热搜')
153
+ .examples('/toutiao', '/tt 20')
154
+ .param('limit', { type: 'number', description: '返回条数,默认10条' })
155
+ .execute(async (args) => {
156
+ const data = await fetchApi('/toutiao');
157
+ return ['🔥 头条热搜', '', formatList(data, args.limit || 10)].join('\n');
158
+ });
159
+ // ── 一言 ──────────────────────────────────────────────────────────────────────
160
+ const hitokotoTool = new ZhinTool('hitokoto')
161
+ .desc('获取一言/每日一句,随机返回一条语句')
162
+ .tag('语录', '文学', '随机')
163
+ .keyword('一言', '每日一句', '语录', '名言', 'hitokoto')
164
+ .alias('一言', '每日一句', 'yy')
165
+ .usage('获取随机一言')
166
+ .examples('/hitokoto', '/一言 i')
167
+ .param('type', {
168
+ type: 'string',
169
+ description: '类型:a=动画, b=漫画, c=游戏, d=文学, e=原创, f=网络, g=其他, h=影视, i=诗词, j=网易云, k=哲学, l=抖机灵',
170
+ })
171
+ .execute(async (args) => {
172
+ const params = args.type
173
+ ? { c: args.type }
174
+ : undefined;
175
+ const data = await fetchApi('/hitokoto', params);
176
+ const lines = ['💬 一言', '', `「${data.hitokoto || data.content || data}」`];
177
+ if (data.from || data.source) {
178
+ const author = data.from_who || data.author || '';
179
+ const source = data.from || data.source || '';
180
+ lines.push(`——${author}${source ? `《${source}》` : ''}`);
181
+ }
182
+ return lines.join('\n');
183
+ });
184
+ // ── 摸鱼日历 ──────────────────────────────────────────────────────────────────
185
+ const moyuTool = new ZhinTool('moyu')
186
+ .desc('获取摸鱼日历,查看今天适不适合摸鱼')
187
+ .tag('生活', '摸鱼', '日历')
188
+ .keyword('摸鱼', '摸鱼日历', 'moyu')
189
+ .alias('摸鱼', '摸鱼日历')
190
+ .usage('获取摸鱼日历')
191
+ .examples('/moyu')
192
+ .execute(async () => {
193
+ const data = await fetchApi('/moyu');
194
+ if (typeof data === 'string')
195
+ return `🐟 摸鱼日历\n\n${data}`;
196
+ if (data.url || data.image)
197
+ return `🐟 摸鱼日历\n\n${data.url || data.image}`;
198
+ return `🐟 摸鱼日历\n\n${JSON.stringify(data)}`;
199
+ });
200
+ // ── IP 查询 ───────────────────────────────────────────────────────────────────
201
+ const ipTool = new ZhinTool('ip_query')
202
+ .desc('查询 IP 地址的地理位置信息')
203
+ .tag('网络', '查询', 'IP')
204
+ .keyword('ip', 'IP', 'IP查询', 'ip查询')
205
+ .alias('IP查询')
206
+ .usage('查询 IP 地址信息')
207
+ .examples('/ip', '/ip 8.8.8.8')
208
+ .param('ip', { type: 'string', description: 'IP 地址,不填则查询当前 IP' })
209
+ .execute(async (args) => {
210
+ const params = args.ip
211
+ ? { ip: args.ip }
212
+ : undefined;
213
+ const data = await fetchApi('/ip', params);
214
+ const lines = ['🌐 IP 查询', '', `IP: ${data.ip || args.ip || '当前 IP'}`];
215
+ if (data.country || data.region || data.city) {
216
+ lines.push(`位置: ${data.country || ''}${data.region || ''}${data.city || ''}`);
217
+ }
218
+ if (data.isp)
219
+ lines.push(`运营商: ${data.isp}`);
220
+ if (data.location)
221
+ lines.push(`位置: ${data.location}`);
222
+ return lines.join('\n');
223
+ });
224
+ // ── Bing 每日图片 ─────────────────────────────────────────────────────────────
225
+ const bingTool = new ZhinTool('bing_image')
226
+ .desc('获取 Bing 每日壁纸图片')
227
+ .tag('图片', '壁纸', 'Bing')
228
+ .keyword('bing', '必应', '壁纸', '每日壁纸')
229
+ .alias('必应', '每日壁纸')
230
+ .usage('获取 Bing 每日壁纸')
231
+ .examples('/bing')
232
+ .execute(async () => {
233
+ const data = await fetchApi('/bing');
234
+ const lines = ['🖼️ Bing 每日壁纸', ''];
235
+ if (data.title)
236
+ lines.push(`📌 ${data.title}`);
237
+ if (data.copyright)
238
+ lines.push(`📝 ${data.copyright}`);
239
+ if (data.url || data.image)
240
+ lines.push('', data.url || data.image);
241
+ return lines.join('\n');
242
+ });
243
+ // ── 金价 ──────────────────────────────────────────────────────────────────────
244
+ const goldPriceTool = new ZhinTool('gold_price')
245
+ .desc('查询今日黄金价格')
246
+ .tag('金融', '黄金', '价格')
247
+ .keyword('金价', '黄金', '黄金价格', 'gold')
248
+ .alias('金价', '黄金价格', 'jj')
249
+ .usage('查询今日金价')
250
+ .examples('/gold', '/金价')
251
+ .execute(async () => {
252
+ const data = await fetchApi('/gold-price');
253
+ const lines = ['💰 今日金价', ''];
254
+ if (Array.isArray(data)) {
255
+ data.slice(0, 10).forEach((item) => {
256
+ const name = item.name || item.title || '黄金';
257
+ const price = item.price || item.value;
258
+ const change = item.change || item.diff;
259
+ const icon = change?.includes('-') ? '📉' : '📈';
260
+ lines.push(`${name}: ¥${price} ${change ? `${icon}${change}` : ''}`);
261
+ });
262
+ }
263
+ else if (data.price) {
264
+ lines.push(`当前金价: ¥${data.price}/克`);
265
+ if (data.change)
266
+ lines.push(`涨跌: ${data.change}`);
267
+ }
268
+ else {
269
+ lines.push(JSON.stringify(data));
270
+ }
271
+ return lines.join('\n');
272
+ });
273
+ // ── 油价 ──────────────────────────────────────────────────────────────────────
274
+ const fuelPriceTool = new ZhinTool('fuel_price')
275
+ .desc('查询今日油价')
276
+ .tag('生活', '油价', '价格')
277
+ .keyword('油价', '汽油', '柴油', 'fuel')
278
+ .alias('油价', 'yj')
279
+ .usage('查询今日油价')
280
+ .examples('/fuel', '/油价 四川')
281
+ .param('province', { type: 'string', description: '省份名称,如"四川"、"北京"' })
282
+ .execute(async (args) => {
283
+ const params = args.province
284
+ ? { province: args.province }
285
+ : undefined;
286
+ const data = await fetchApi('/fuel-price', params);
287
+ const lines = ['⛽ 今日油价', ''];
288
+ if (data.province)
289
+ lines.push(`📍 ${data.province}`);
290
+ if (data['92'] || data['95'] || data['98']) {
291
+ if (data['92'])
292
+ lines.push(`92号汽油: ¥${data['92']}/升`);
293
+ if (data['95'])
294
+ lines.push(`95号汽油: ¥${data['95']}/升`);
295
+ if (data['98'])
296
+ lines.push(`98号汽油: ¥${data['98']}/升`);
297
+ if (data['0'])
298
+ lines.push(`0号柴油: ¥${data['0']}/升`);
299
+ }
300
+ else if (Array.isArray(data)) {
301
+ data
302
+ .slice(0, 5)
303
+ .forEach((item) => lines.push(`${item.name || item.province}: 92号¥${item['92'] || item.price92}`));
304
+ }
305
+ else {
306
+ lines.push(JSON.stringify(data));
307
+ }
308
+ return lines.join('\n');
309
+ });
310
+ // ── 汇率 ──────────────────────────────────────────────────────────────────────
311
+ const exchangeRateTool = new ZhinTool('exchange_rate')
312
+ .desc('查询货币汇率')
313
+ .tag('金融', '汇率', '查询')
314
+ .keyword('汇率', '兑换', '外汇', 'exchange', 'rate')
315
+ .alias('汇率', 'hl')
316
+ .usage('查询汇率')
317
+ .examples('/exchange USD CNY', '/汇率')
318
+ .param('from', { type: 'string', description: '源货币,如 USD, EUR, JPY' })
319
+ .param('to', { type: 'string', description: '目标货币,如 CNY' })
320
+ .execute(async (args) => {
321
+ const params = {};
322
+ if (args.from)
323
+ params.from = args.from.toUpperCase();
324
+ if (args.to)
325
+ params.to = args.to.toUpperCase();
326
+ const data = await fetchApi('/exchange-rate', Object.keys(params).length ? params : undefined);
327
+ const lines = ['💱 汇率查询', ''];
328
+ if (Array.isArray(data)) {
329
+ data.slice(0, 10).forEach((item) => {
330
+ lines.push(`${item.name || item.currency}: ${item.rate || item.value}`);
331
+ });
332
+ }
333
+ else if (data.rate) {
334
+ lines.push(`${args.from || 'USD'} → ${args.to || 'CNY'}: ${data.rate}`);
335
+ }
336
+ else {
337
+ lines.push(JSON.stringify(data));
338
+ }
339
+ return lines.join('\n');
340
+ });
341
+ // ── 翻译 ──────────────────────────────────────────────────────────────────────
342
+ const translateTool = new ZhinTool('translate_60s')
343
+ .desc('翻译文本')
344
+ .tag('工具', '翻译', '语言')
345
+ .keyword('翻译', '英文', '中文', '日文', 'translate', '译')
346
+ .alias('翻译', 'fy')
347
+ .usage('翻译文本')
348
+ .examples('/fanyi hello', '/翻译 你好 en')
349
+ .param('text', { type: 'string', description: '要翻译的文本' }, true)
350
+ .param('to', { type: 'string', description: '目标语言,如 en, zh, ja' })
351
+ .execute(async (args) => {
352
+ const params = { text: args.text };
353
+ if (args.to)
354
+ params.to = args.to;
355
+ const data = await fetchApi('/fanyi', params);
356
+ return [
357
+ '🌐 翻译结果',
358
+ '',
359
+ `原文: ${args.text}`,
360
+ `译文: ${data.result || data.translation || data.text || data}`,
361
+ ].join('\n');
362
+ });
363
+ // ── 历史上的今天 ──────────────────────────────────────────────────────────────
364
+ const historyTodayTool = new ZhinTool('history_today')
365
+ .desc('查看历史上的今天发生了什么')
366
+ .tag('历史', '知识', '日历')
367
+ .keyword('历史', '历史上的今天', '今天历史', 'history')
368
+ .alias('历史上的今天', '历史')
369
+ .usage('查看历史上的今天')
370
+ .examples('/history')
371
+ .execute(async () => {
372
+ const data = await fetchApi('/today-in-history');
373
+ const today = new Date();
374
+ const lines = [
375
+ `📅 历史上的今天 (${today.getMonth() + 1}月${today.getDate()}日)`,
376
+ '',
377
+ ];
378
+ if (Array.isArray(data)) {
379
+ data.slice(0, 10).forEach((item, i) => {
380
+ const year = item.year || '';
381
+ const title = item.title || item.event || item.content || item;
382
+ lines.push(`${i + 1}. ${year ? `[${year}] ` : ''}${title}`);
383
+ });
384
+ }
385
+ else {
386
+ lines.push(JSON.stringify(data));
387
+ }
388
+ return lines.join('\n');
389
+ });
390
+ // ── KFC 疯狂星期四 ────────────────────────────────────────────────────────────
391
+ const kfcTool = new ZhinTool('kfc')
392
+ .desc('获取 KFC 疯狂星期四文案')
393
+ .tag('娱乐', 'KFC', '文案')
394
+ .keyword('kfc', 'KFC', '疯狂星期四', 'v50', '肯德基')
395
+ .alias('疯狂星期四', 'v50')
396
+ .usage('获取 KFC 文案')
397
+ .examples('/kfc')
398
+ .execute(async () => {
399
+ const data = await fetchApi('/kfc');
400
+ return `🍗 疯狂星期四\n\n${data.content || data.text || data}`;
401
+ });
402
+ // ── 段子 ──────────────────────────────────────────────────────────────────────
403
+ const duanziTool = new ZhinTool('duanzi')
404
+ .desc('获取一个段子')
405
+ .tag('娱乐', '笑话', '段子')
406
+ .keyword('段子', '笑话', '搞笑', 'joke', 'duanzi')
407
+ .alias('段子', 'joke')
408
+ .usage('获取段子')
409
+ .examples('/duanzi')
410
+ .execute(async () => {
411
+ const data = await fetchApi('/duanzi');
412
+ return `😂 段子\n\n${data.content || data.text || data}`;
413
+ });
414
+ // ═══════════════════════════════════════════════════════════════════════════════
415
+ // 注册所有工具
416
+ // ═══════════════════════════════════════════════════════════════════════════════
417
+ const allTools = [
418
+ newsTool,
419
+ weatherTool,
420
+ weiboTool,
421
+ zhihuTool,
422
+ douyinTool,
423
+ toutiaoTool,
424
+ hitokotoTool,
425
+ moyuTool,
426
+ ipTool,
427
+ bingTool,
428
+ goldPriceTool,
429
+ fuelPriceTool,
430
+ exchangeRateTool,
431
+ translateTool,
432
+ historyTodayTool,
433
+ kfcTool,
434
+ duanziTool,
435
+ ];
436
+ allTools.forEach((tool) => plugin.addTool(tool.toTool()));
437
+ // 声明 Skill 元数据 — 让 AI Agent 知道这个插件的能力
438
+ plugin.declareSkill({
439
+ description: '60s API 聚合服务:提供新闻、天气、热搜、金价、油价、汇率、翻译、一言、摸鱼日历等 17 种实用查询能力',
440
+ tags: ['新闻', '资讯', '天气', '热搜', '生活', '金融', '娱乐', '工具'],
441
+ keywords: [
442
+ '60s', '新闻', '天气', '微博', '知乎', '抖音', '头条',
443
+ '一言', '摸鱼', '金价', '油价', '汇率', '翻译', '历史',
444
+ 'kfc', '段子', '壁纸', 'bing', 'ip',
445
+ ],
446
+ });
447
+ logger.info(`[60s] 已注册 ${allTools.length} 个工具`);
448
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@zhin.js/plugin-60s",
3
+ "version": "0.0.0",
4
+ "description": "60s API aggregation plugin for Zhin.js — news, weather, hot searches, utilities and more",
5
+ "type": "module",
6
+ "main": "./lib/index.js",
7
+ "types": "./lib/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/index.d.ts",
11
+ "development": "./src/index.ts",
12
+ "import": "./lib/index.js"
13
+ },
14
+ "./package.json": "./package.json"
15
+ },
16
+ "files": [
17
+ "lib",
18
+ "README.md"
19
+ ],
20
+ "keywords": [
21
+ "zhin",
22
+ "bot",
23
+ "plugin",
24
+ "60s",
25
+ "news",
26
+ "weather",
27
+ "weibo",
28
+ "zhihu",
29
+ "douyin",
30
+ "hot-search",
31
+ "hitokoto",
32
+ "api",
33
+ "chatbot"
34
+ ],
35
+ "author": {
36
+ "name": "lc-cn",
37
+ "email": "admin@liucl.cn",
38
+ "url": "https://github.com/lc-cn"
39
+ },
40
+ "license": "MIT",
41
+ "dependencies": {},
42
+ "devDependencies": {
43
+ "typescript": "^5.3.3",
44
+ "zhin.js": "1.0.25"
45
+ },
46
+ "peerDependencies": {
47
+ "zhin.js": ">=1.0.0"
48
+ },
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/zhinjs/zhin.git",
52
+ "directory": "plugins/utils/60s"
53
+ },
54
+ "publishConfig": {
55
+ "access": "public",
56
+ "registry": "https://registry.npmjs.org"
57
+ },
58
+ "scripts": {
59
+ "build": "tsc --build",
60
+ "clean": "rm -rf lib"
61
+ }
62
+ }