@zhin.js/plugin-60s 0.0.2 โ†’ 0.0.4

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/lib/index.js CHANGED
@@ -52,8 +52,9 @@ function formatList(items, limit = 10) {
52
52
  .slice(0, limit)
53
53
  .map((item, i) => {
54
54
  const title = item.title || item.name || item.word || item;
55
- const hot = item.hot ? ` ๐Ÿ”ฅ${item.hot}` : '';
56
- return `${i + 1}. ${title}${hot}`;
55
+ const hot = item.hot_value || item.hot;
56
+ const hotStr = hot ? ` ๐Ÿ”ฅ${hot}` : '';
57
+ return `${i + 1}. ${title}${hotStr}`;
57
58
  })
58
59
  .join('\n');
59
60
  }
@@ -88,20 +89,23 @@ const weatherTool = new ZhinTool('weather')
88
89
  .examples('/weather ๆˆ้ƒฝ', '/ๅคฉๆฐ” ๅŒ—ไบฌ')
89
90
  .param('city', { type: 'string', description: 'ๅŸŽๅธ‚ๅ็งฐ๏ผŒๅฆ‚"ๆˆ้ƒฝ"ใ€"ๅŒ—ไบฌ"' }, true)
90
91
  .execute(async (args) => {
91
- const data = await fetchApi('/weather', { query: args.city });
92
+ const data = await fetchApi('/weather', { city: args.city });
92
93
  const w = data.weather;
93
94
  const aq = data.air_quality;
94
95
  const loc = data.location;
96
+ const cityName = loc?.city || loc?.name || args.city;
95
97
  const lines = [
96
- `๐ŸŒค๏ธ ${loc?.name || args.city} ๅคฉๆฐ”`,
98
+ `๐ŸŒค๏ธ ${cityName} ๅคฉๆฐ”`,
97
99
  '',
98
100
  `๐ŸŒก๏ธ ๆธฉๅบฆ: ${w.temperature}ยฐC`,
99
101
  `โ˜๏ธ ๅคฉๆฐ”: ${w.condition}`,
100
102
  `๐Ÿ’ง ๆนฟๅบฆ: ${w.humidity}%`,
101
103
  `๐Ÿ’จ ้ฃŽ: ${w.wind_direction} ${w.wind_power}`,
102
104
  ];
103
- if (aq)
104
- lines.push(`๐ŸŒฌ๏ธ ็ฉบๆฐ”: ${aq.quality} (AQI ${aq.aqi})`);
105
+ if (aq) {
106
+ const quality = aq.quality || '';
107
+ lines.push(`๐ŸŒฌ๏ธ ็ฉบๆฐ”: ${quality}${aq.aqi ? ` (AQI ${aq.aqi})` : ''}`);
108
+ }
105
109
  return lines.join('\n');
106
110
  });
107
111
  // โ”€โ”€ ๅพฎๅš็ƒญๆœ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -173,8 +177,9 @@ const hitokotoTool = new ZhinTool('hitokoto')
173
177
  ? { c: args.type }
174
178
  : undefined;
175
179
  const data = await fetchApi('/hitokoto', params);
176
- const lines = ['๐Ÿ’ฌ ไธ€่จ€', '', `ใ€Œ${data.hitokoto || data.content || data}ใ€`];
177
- if (data.from || data.source) {
180
+ const text = data.hitokoto || data.content || (typeof data === 'string' ? data : '');
181
+ const lines = ['๐Ÿ’ฌ ไธ€่จ€', '', `ใ€Œ${text}ใ€`];
182
+ if (data.from || data.source || data.from_who || data.author) {
178
183
  const author = data.from_who || data.author || '';
179
184
  const source = data.from || data.source || '';
180
185
  lines.push(`โ€”โ€”${author}${source ? `ใ€Š${source}ใ€‹` : ''}`);
@@ -193,9 +198,32 @@ const moyuTool = new ZhinTool('moyu')
193
198
  const data = await fetchApi('/moyu');
194
199
  if (typeof data === 'string')
195
200
  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)}`;
201
+ const lines = ['๐ŸŸ ๆ‘ธ้ฑผๆ—ฅๅކ', ''];
202
+ if (data.date?.gregorian)
203
+ lines.push(`๐Ÿ“… ${data.date.gregorian} ${data.date.weekday || ''}`);
204
+ if (data.date?.lunar) {
205
+ const l = data.date.lunar;
206
+ lines.push(`๐ŸŒ™ ๅ†œๅކ${l.monthCN || ''}${l.dayCN || ''} ${l.yearGanZhi || ''}ๅนด`);
207
+ }
208
+ if (data.today) {
209
+ const t = data.today;
210
+ if (t.holidayName)
211
+ lines.push(`๐ŸŽ‰ ${t.holidayName}`);
212
+ if (t.solarTerm)
213
+ lines.push(`๐ŸŒฟ ${t.solarTerm}`);
214
+ lines.push(t.isWorkday ? '๐Ÿ’ผ ไปŠๅคฉๆ˜ฏๅทฅไฝœๆ—ฅ' : '๐ŸŽฎ ไปŠๅคฉไธไธŠ็ญ');
215
+ }
216
+ if (data.festivals && Array.isArray(data.festivals)) {
217
+ data.festivals.forEach((f) => lines.push(`๐ŸŽŠ ${f.name || f}`));
218
+ }
219
+ if (data.countdown && Array.isArray(data.countdown)) {
220
+ lines.push('');
221
+ data.countdown.forEach((c) => {
222
+ if (c.name && c.days !== undefined)
223
+ lines.push(`โณ ่ท ${c.name} ่ฟ˜ๆœ‰ ${c.days} ๅคฉ`);
224
+ });
225
+ }
226
+ return lines.join('\n');
199
227
  });
200
228
  // โ”€โ”€ IP ๆŸฅ่ฏข โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
201
229
  const ipTool = new ZhinTool('ip_query')
@@ -213,12 +241,12 @@ const ipTool = new ZhinTool('ip_query')
213
241
  const data = await fetchApi('/ip', params);
214
242
  const lines = ['๐ŸŒ IP ๆŸฅ่ฏข', '', `IP: ${data.ip || args.ip || 'ๅฝ“ๅ‰ IP'}`];
215
243
  if (data.country || data.region || data.city) {
216
- lines.push(`ไฝ็ฝฎ: ${data.country || ''}${data.region || ''}${data.city || ''}`);
244
+ lines.push(`ไฝ็ฝฎ: ${[data.country, data.region, data.city].filter(Boolean).join(' ')}`);
217
245
  }
218
- if (data.isp)
219
- lines.push(`่ฟ่ฅๅ•†: ${data.isp}`);
220
246
  if (data.location)
221
247
  lines.push(`ไฝ็ฝฎ: ${data.location}`);
248
+ if (data.isp)
249
+ lines.push(`่ฟ่ฅๅ•†: ${data.isp}`);
222
250
  return lines.join('\n');
223
251
  });
224
252
  // โ”€โ”€ Bing ๆฏๆ—ฅๅ›พ็‰‡ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -234,10 +262,15 @@ const bingTool = new ZhinTool('bing_image')
234
262
  const lines = ['๐Ÿ–ผ๏ธ Bing ๆฏๆ—ฅๅฃ็บธ', ''];
235
263
  if (data.title)
236
264
  lines.push(`๐Ÿ“Œ ${data.title}`);
265
+ if (data.headline)
266
+ lines.push(`๐Ÿ’ก ${data.headline}`);
237
267
  if (data.copyright)
238
268
  lines.push(`๐Ÿ“ ${data.copyright}`);
239
- if (data.url || data.image)
240
- lines.push('', data.url || data.image);
269
+ if (data.description)
270
+ lines.push('', data.description);
271
+ const imgUrl = data.cover || data.cover_4k || data.url || data.image;
272
+ if (imgUrl)
273
+ lines.push('', imgUrl);
241
274
  return lines.join('\n');
242
275
  });
243
276
  // โ”€โ”€ ้‡‘ไปท โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -251,22 +284,21 @@ const goldPriceTool = new ZhinTool('gold_price')
251
284
  .execute(async () => {
252
285
  const data = await fetchApi('/gold-price');
253
286
  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}` : ''}`);
287
+ if (data.date)
288
+ lines.push(`๐Ÿ“… ${data.date}`);
289
+ const metals = data.metals || (Array.isArray(data) ? data : []);
290
+ if (metals.length > 0) {
291
+ lines.push('');
292
+ metals.forEach((item) => {
293
+ const name = item.name || '้ป„้‡‘';
294
+ const price = item.today_price || item.sell_price || item.price || 'N/A';
295
+ const unit = item.unit || 'ๅ…ƒ/ๅ…‹';
296
+ if (price !== 'N/A')
297
+ lines.push(`${name}: ยฅ${price} ${unit}`);
261
298
  });
262
299
  }
263
300
  else if (data.price) {
264
301
  lines.push(`ๅฝ“ๅ‰้‡‘ไปท: ยฅ${data.price}/ๅ…‹`);
265
- if (data.change)
266
- lines.push(`ๆถจ่ทŒ: ${data.change}`);
267
- }
268
- else {
269
- lines.push(JSON.stringify(data));
270
302
  }
271
303
  return lines.join('\n');
272
304
  });
@@ -285,25 +317,15 @@ const fuelPriceTool = new ZhinTool('fuel_price')
285
317
  : undefined;
286
318
  const data = await fetchApi('/fuel-price', params);
287
319
  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}`));
320
+ if (data.region)
321
+ lines.push(`๐Ÿ“ ${data.region}`);
322
+ if (data.items && Array.isArray(data.items)) {
323
+ data.items.forEach((item) => {
324
+ lines.push(`${item.name}: ${item.price_desc || `ยฅ${item.price}/ๅ‡`}`);
325
+ });
304
326
  }
305
- else {
306
- lines.push(JSON.stringify(data));
327
+ if (data.trend) {
328
+ lines.push('', `๐Ÿ“Š ${data.trend.description || ''}`);
307
329
  }
308
330
  return lines.join('\n');
309
331
  });
@@ -325,17 +347,20 @@ const exchangeRateTool = new ZhinTool('exchange_rate')
325
347
  params.to = args.to.toUpperCase();
326
348
  const data = await fetchApi('/exchange-rate', Object.keys(params).length ? params : undefined);
327
349
  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
- }
350
+ const base = data.base_code || args.from || 'CNY';
351
+ lines.push(`ๅŸบๅ‡†่ดงๅธ: ${base}`);
352
+ if (data.updated)
353
+ lines.push(`ๆ›ดๆ–ฐๆ—ถ้—ด: ${data.updated}`);
354
+ lines.push('');
355
+ const rates = data.rates || (Array.isArray(data) ? data : []);
356
+ const targetCurrencies = args.to
357
+ ? [args.to.toUpperCase()]
358
+ : ['USD', 'EUR', 'JPY', 'GBP', 'HKD', 'KRW', 'AUD', 'CAD', 'SGD', 'CHF'];
359
+ rates.forEach((item) => {
360
+ if (targetCurrencies.includes(item.currency) && item.currency !== base) {
361
+ lines.push(`${base} โ†’ ${item.currency}: ${item.rate}`);
362
+ }
363
+ });
339
364
  return lines.join('\n');
340
365
  });
341
366
  // โ”€โ”€ ็ฟป่ฏ‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -353,12 +378,19 @@ const translateTool = new ZhinTool('translate_60s')
353
378
  if (args.to)
354
379
  params.to = args.to;
355
380
  const data = await fetchApi('/fanyi', params);
356
- return [
381
+ const srcText = data.source?.text || args.text;
382
+ const srcLang = data.source?.type_desc || data.source?.type || '';
383
+ const tgtText = data.target?.text || data.result || data.translation || (typeof data === 'string' ? data : '');
384
+ const tgtLang = data.target?.type_desc || data.target?.type || '';
385
+ const lines = [
357
386
  '๐ŸŒ ็ฟป่ฏ‘็ป“ๆžœ',
358
387
  '',
359
- `ๅŽŸๆ–‡: ${args.text}`,
360
- `่ฏ‘ๆ–‡: ${data.result || data.translation || data.text || data}`,
361
- ].join('\n');
388
+ `ๅŽŸๆ–‡${srcLang ? ` (${srcLang})` : ''}: ${srcText}`,
389
+ `่ฏ‘ๆ–‡${tgtLang ? ` (${tgtLang})` : ''}: ${tgtText}`,
390
+ ];
391
+ if (data.target?.pronounce)
392
+ lines.push(`ๅ‘้Ÿณ: ${data.target.pronounce}`);
393
+ return lines.join('\n');
362
394
  });
363
395
  // โ”€โ”€ ๅކๅฒไธŠ็š„ไปŠๅคฉ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
364
396
  const historyTodayTool = new ZhinTool('history_today')
@@ -370,21 +402,15 @@ const historyTodayTool = new ZhinTool('history_today')
370
402
  .examples('/history')
371
403
  .execute(async () => {
372
404
  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
- }
405
+ const dateStr = data.date || `${data.month || ''}ๆœˆ${data.day || ''}ๆ—ฅ`;
406
+ const lines = [`๐Ÿ“… ๅކๅฒไธŠ็š„ไปŠๅคฉ (${dateStr})`, ''];
407
+ const items = data.items || (Array.isArray(data) ? data : []);
408
+ items.slice(0, 10).forEach((item, i) => {
409
+ const year = item.year || '';
410
+ const title = item.title || item.event || item.content || item;
411
+ const typeIcon = item.event_type === 'birth' ? '๐Ÿ‘ถ' : item.event_type === 'death' ? '๐Ÿ•Š๏ธ' : '๐Ÿ“Œ';
412
+ lines.push(`${typeIcon} ${i + 1}. ${year ? `[${year}] ` : ''}${title}`);
413
+ });
388
414
  return lines.join('\n');
389
415
  });
390
416
  // โ”€โ”€ KFC ็–ฏ็‹‚ๆ˜ŸๆœŸๅ›› โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -397,7 +423,7 @@ const kfcTool = new ZhinTool('kfc')
397
423
  .examples('/kfc')
398
424
  .execute(async () => {
399
425
  const data = await fetchApi('/kfc');
400
- return `๐Ÿ— ็–ฏ็‹‚ๆ˜ŸๆœŸๅ››\n\n${data.content || data.text || data}`;
426
+ return `๐Ÿ— ็–ฏ็‹‚ๆ˜ŸๆœŸๅ››\n\n${data.kfc || data.content || data.text || (typeof data === 'string' ? data : '')}`;
401
427
  });
402
428
  // โ”€โ”€ ๆฎตๅญ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
403
429
  const duanziTool = new ZhinTool('duanzi')
@@ -409,7 +435,7 @@ const duanziTool = new ZhinTool('duanzi')
409
435
  .examples('/duanzi')
410
436
  .execute(async () => {
411
437
  const data = await fetchApi('/duanzi');
412
- return `๐Ÿ˜‚ ๆฎตๅญ\n\n${data.content || data.text || data}`;
438
+ return `๐Ÿ˜‚ ๆฎตๅญ\n\n${data.duanzi || data.content || data.text || (typeof data === 'string' ? data : '')}`;
413
439
  });
414
440
  // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
415
441
  // ๆณจๅ†Œๆ‰€ๆœ‰ๅทฅๅ…ท
@@ -434,15 +460,5 @@ const allTools = [
434
460
  duanziTool,
435
461
  ];
436
462
  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} ไธชๅทฅๅ…ท`);
463
+ logger.debug(`[60s] ๅทฒๆณจๅ†Œ ${allTools.length} ไธชๅทฅๅ…ท`);
448
464
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/plugin-60s",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "60s API aggregation plugin for Zhin.js โ€” news, weather, hot searches, utilities and more",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -14,7 +14,11 @@
14
14
  "./package.json": "./package.json"
15
15
  },
16
16
  "files": [
17
+ "src",
17
18
  "lib",
19
+ "client",
20
+ "dist",
21
+ "skills",
18
22
  "README.md"
19
23
  ],
20
24
  "keywords": [
@@ -41,10 +45,10 @@
41
45
  "dependencies": {},
42
46
  "devDependencies": {
43
47
  "typescript": "^5.3.3",
44
- "zhin.js": "1.0.26"
48
+ "zhin.js": "1.0.52"
45
49
  },
46
50
  "peerDependencies": {
47
- "zhin.js": ">=1.0.26"
51
+ "zhin.js": ">=1.0.52"
48
52
  },
49
53
  "repository": {
50
54
  "type": "git",
@@ -57,6 +61,6 @@
57
61
  },
58
62
  "scripts": {
59
63
  "build": "tsc --build",
60
- "clean": "rm -rf lib"
64
+ "clean": "rimraf lib"
61
65
  }
62
66
  }
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: "60s"
3
+ description: 60s API ่šๅˆๆœๅŠก๏ผšๆไพ›ๆ–ฐ้—ปใ€ๅคฉๆฐ”ใ€็ƒญๆœใ€้‡‘ไปทใ€ๆฒนไปทใ€ๆฑ‡็އใ€็ฟป่ฏ‘ใ€ไธ€่จ€ใ€ๆ‘ธ้ฑผๆ—ฅๅކ็ญ‰ๅคš็งๅฎž็”จๆŸฅ่ฏข่ƒฝๅŠ›ใ€‚
4
+ keywords:
5
+ - 60s
6
+ - ๆ–ฐ้—ป
7
+ - ๅคฉๆฐ”
8
+ - ๅพฎๅš
9
+ - ็ŸฅไนŽ
10
+ - ๆŠ–้Ÿณ
11
+ - ๅคดๆก
12
+ - ไธ€่จ€
13
+ - ๆ‘ธ้ฑผ
14
+ - ้‡‘ไปท
15
+ - ๆฒนไปท
16
+ - ๆฑ‡็އ
17
+ - ็ฟป่ฏ‘
18
+ - ๅކๅฒ
19
+ - kfc
20
+ - ๆฎตๅญ
21
+ - ๅฃ็บธ
22
+ - bing
23
+ - ip
24
+ tags:
25
+ - ๆ–ฐ้—ป
26
+ - ่ต„่ฎฏ
27
+ - ๅคฉๆฐ”
28
+ - ็ƒญๆœ
29
+ - ็”Ÿๆดป
30
+ - ้‡‘่ž
31
+ - ๅจฑไน
32
+ - ๅทฅๅ…ท
33
+ tools: []
34
+ ---
35
+
36
+ ## ๆ‰ง่กŒ่ง„ๅˆ™
37
+
38
+ - ๆŒ‰็”จๆˆทๆ„ๅ›พ้€‰ๆ‹ฉๅฏนๅบ” `*_60s` ๆˆ–ๆ’ไปถๆณจๅ†Œๅ็งฐ็š„ๅทฅๅ…ทๅฎŒๆˆๆŸฅ่ฏขใ€‚
package/src/index.ts ADDED
@@ -0,0 +1,487 @@
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
+
24
+ const plugin = usePlugin();
25
+ const { logger, root } = plugin;
26
+
27
+ // โ”€โ”€โ”€ ้…็ฝฎ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
28
+
29
+ interface Config {
30
+ apiBase?: string;
31
+ }
32
+
33
+ const configService = root.inject('config');
34
+ const appConfig = configService?.get<{ '60s'?: Config }>('zhin.config.yml') || {};
35
+ const config: Config = {
36
+ apiBase: 'https://60s.viki.moe',
37
+ ...appConfig['60s'],
38
+ };
39
+
40
+ const API_BASE = config.apiBase || 'https://60s.viki.moe';
41
+
42
+ logger.debug(`[60s] API ๅœฐๅ€: ${API_BASE}`);
43
+
44
+ // โ”€โ”€โ”€ ้€š็”จ่ฏทๆฑ‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
45
+
46
+ async function fetchApi<T = any>(
47
+ endpoint: string,
48
+ params?: Record<string, string>,
49
+ ): Promise<T> {
50
+ const url = new URL(`${API_BASE}/v2${endpoint}`);
51
+ if (params) {
52
+ Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
53
+ }
54
+
55
+ logger.debug(`[60s] ่ฏทๆฑ‚: ${url.toString()}`);
56
+
57
+ const res = await fetch(url.toString());
58
+ const data = (await res.json()) as any;
59
+
60
+ if (data.error) throw new Error(data.error);
61
+ if (data.code !== undefined && data.code !== 200 && data.code !== 0) {
62
+ throw new Error(data.message || data.msg || `API ้”™่ฏฏ: ${data.code}`);
63
+ }
64
+
65
+ return data.data ?? data;
66
+ }
67
+
68
+ // โ”€โ”€โ”€ ๅทฅๅ…ทๅ‡ฝๆ•ฐ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
69
+
70
+ function formatList(items: any[], limit = 10): string {
71
+ return items
72
+ .slice(0, limit)
73
+ .map((item, i) => {
74
+ const title = item.title || item.name || item.word || item;
75
+ const hot = item.hot_value || item.hot;
76
+ const hotStr = hot ? ` ๐Ÿ”ฅ${hot}` : '';
77
+ return `${i + 1}. ${title}${hotStr}`;
78
+ })
79
+ .join('\n');
80
+ }
81
+
82
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
83
+ // ๅทฅๅ…ทๅฎšไน‰๏ผˆZhinTool ้“พๅผ้ฃŽๆ ผ โ€” ๅŒๆ—ถๆณจๅ†Œๅ‘ฝไปค + AI ๅทฅๅ…ท๏ผ‰
84
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
85
+
86
+ // โ”€โ”€ 60 ็ง’ๆ–ฐ้—ป โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
87
+ const newsTool = new ZhinTool('60s_news')
88
+ .desc('่Žทๅ–ๆฏๆ—ฅ60็ง’ๆ–ฐ้—ป๏ผŒๅฟซ้€Ÿไบ†่งฃไปŠๆ—ฅ่ฆ้—ป')
89
+ .tag('ๆ–ฐ้—ป', '่ต„่ฎฏ', '60s')
90
+ .keyword('60s', 'ๆ–ฐ้—ป', 'ไปŠๆ—ฅๆ–ฐ้—ป', '60็ง’', 'ๆฏๆ—ฅๆ–ฐ้—ป', '่ฏปๆ‡‚ไธ–็•Œ')
91
+ .alias('ๆ–ฐ้—ป', 'ไปŠๆ—ฅๆ–ฐ้—ป', '60็ง’')
92
+ .usage('่Žทๅ–ไปŠๆ—ฅ60็ง’ๆ–ฐ้—ป')
93
+ .examples('/60s')
94
+ .execute(async () => {
95
+ const data = await fetchApi<any>('/60s');
96
+ const lines = [`๐Ÿ“ฐ ไปŠๆ—ฅ60็ง’ๆ–ฐ้—ป (${data.date || ''})`, ''];
97
+ if (data.news && Array.isArray(data.news)) {
98
+ lines.push(...data.news.map((n: string, i: number) => `${i + 1}. ${n}`));
99
+ }
100
+ if (data.tip) lines.push('', `๐Ÿ’ก ${data.tip}`);
101
+ return lines.join('\n');
102
+ });
103
+
104
+ // โ”€โ”€ ๅคฉๆฐ” โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
105
+ const weatherTool = new ZhinTool('weather')
106
+ .desc('ๆŸฅ่ฏขๆŒ‡ๅฎšๅŸŽๅธ‚็š„ๅฝ“ๅ‰ๅคฉๆฐ”ไฟกๆฏ')
107
+ .tag('ๅคฉๆฐ”', '็”Ÿๆดป', 'ๆŸฅ่ฏข')
108
+ .keyword('ๅคฉๆฐ”', 'ๆฐ”ๆธฉ', 'ๆธฉๅบฆ', 'ไธ‹้›จ', 'ๆ™ดๅคฉ', '้˜ดๅคฉ', 'weather')
109
+ .alias('ๅคฉๆฐ”', 'tq')
110
+ .usage('ๆŸฅ่ฏขๅŸŽๅธ‚ๅคฉๆฐ”')
111
+ .examples('/weather ๆˆ้ƒฝ', '/ๅคฉๆฐ” ๅŒ—ไบฌ')
112
+ .param('city', { type: 'string', description: 'ๅŸŽๅธ‚ๅ็งฐ๏ผŒๅฆ‚"ๆˆ้ƒฝ"ใ€"ๅŒ—ไบฌ"' }, true)
113
+ .execute(async (args) => {
114
+ const data = await fetchApi<any>('/weather', { city: args.city });
115
+ const w = data.weather;
116
+ const aq = data.air_quality;
117
+ const loc = data.location;
118
+ const cityName = loc?.city || loc?.name || args.city;
119
+ const lines = [
120
+ `๐ŸŒค๏ธ ${cityName} ๅคฉๆฐ”`,
121
+ '',
122
+ `๐ŸŒก๏ธ ๆธฉๅบฆ: ${w.temperature}ยฐC`,
123
+ `โ˜๏ธ ๅคฉๆฐ”: ${w.condition}`,
124
+ `๐Ÿ’ง ๆนฟๅบฆ: ${w.humidity}%`,
125
+ `๐Ÿ’จ ้ฃŽ: ${w.wind_direction} ${w.wind_power}`,
126
+ ];
127
+ if (aq) {
128
+ const quality = aq.quality || '';
129
+ lines.push(`๐ŸŒฌ๏ธ ็ฉบๆฐ”: ${quality}${aq.aqi ? ` (AQI ${aq.aqi})` : ''}`);
130
+ }
131
+ return lines.join('\n');
132
+ });
133
+
134
+ // โ”€โ”€ ๅพฎๅš็ƒญๆœ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
135
+ const weiboTool = new ZhinTool('weibo_hot')
136
+ .desc('่Žทๅ–ๅพฎๅš็ƒญๆœๆฆœ')
137
+ .tag('็ƒญๆœ', '็คพไบค', 'ๅพฎๅš')
138
+ .keyword('ๅพฎๅš', '็ƒญๆœ', 'weibo', 'wb')
139
+ .alias('ๅพฎๅš็ƒญๆœ', 'wb')
140
+ .usage('่Žทๅ–ๅพฎๅš็ƒญๆœ')
141
+ .examples('/weibo', '/weibo 20')
142
+ .param('limit', { type: 'number', description: '่ฟ”ๅ›žๆกๆ•ฐ๏ผŒ้ป˜่ฎค10ๆก' })
143
+ .execute(async (args) => {
144
+ const data = await fetchApi<any[]>('/weibo');
145
+ return ['๐Ÿ”ฅ ๅพฎๅš็ƒญๆœ', '', formatList(data, args.limit || 10)].join('\n');
146
+ });
147
+
148
+ // โ”€โ”€ ็ŸฅไนŽ็ƒญๆฆœ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
149
+ const zhihuTool = new ZhinTool('zhihu_hot')
150
+ .desc('่Žทๅ–็ŸฅไนŽ็ƒญๆฆœ')
151
+ .tag('็ƒญๆœ', '็คพไบค', '็ŸฅไนŽ')
152
+ .keyword('็ŸฅไนŽ', '็ƒญๆฆœ', 'zhihu', 'zh')
153
+ .alias('็ŸฅไนŽ็ƒญๆฆœ', 'zh')
154
+ .usage('่Žทๅ–็ŸฅไนŽ็ƒญๆฆœ')
155
+ .examples('/zhihu', '/zhihu 20')
156
+ .param('limit', { type: 'number', description: '่ฟ”ๅ›žๆกๆ•ฐ๏ผŒ้ป˜่ฎค10ๆก' })
157
+ .execute(async (args) => {
158
+ const data = await fetchApi<any[]>('/zhihu');
159
+ return ['๐Ÿ”ฅ ็ŸฅไนŽ็ƒญๆฆœ', '', formatList(data, args.limit || 10)].join('\n');
160
+ });
161
+
162
+ // โ”€โ”€ ๆŠ–้Ÿณ็ƒญๆœ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
163
+ const douyinTool = new ZhinTool('douyin_hot')
164
+ .desc('่Žทๅ–ๆŠ–้Ÿณ็ƒญๆœๆฆœ')
165
+ .tag('็ƒญๆœ', '็Ÿญ่ง†้ข‘', 'ๆŠ–้Ÿณ')
166
+ .keyword('ๆŠ–้Ÿณ', '็ƒญๆœ', 'douyin', 'dy')
167
+ .alias('ๆŠ–้Ÿณ็ƒญๆœ', 'dy')
168
+ .usage('่Žทๅ–ๆŠ–้Ÿณ็ƒญๆœ')
169
+ .examples('/douyin', '/douyin 20')
170
+ .param('limit', { type: 'number', description: '่ฟ”ๅ›žๆกๆ•ฐ๏ผŒ้ป˜่ฎค10ๆก' })
171
+ .execute(async (args) => {
172
+ const data = await fetchApi<any[]>('/douyin');
173
+ return ['๐Ÿ”ฅ ๆŠ–้Ÿณ็ƒญๆœ', '', formatList(data, args.limit || 10)].join('\n');
174
+ });
175
+
176
+ // โ”€โ”€ ๅคดๆก็ƒญๆœ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
177
+ const toutiaoTool = new ZhinTool('toutiao_hot')
178
+ .desc('่Žทๅ–ไปŠๆ—ฅๅคดๆก็ƒญๆœๆฆœ')
179
+ .tag('็ƒญๆœ', '่ต„่ฎฏ', 'ๅคดๆก')
180
+ .keyword('ๅคดๆก', 'ไปŠๆ—ฅๅคดๆก', '็ƒญๆœ', 'toutiao', 'tt')
181
+ .alias('ๅคดๆก็ƒญๆœ', 'tt')
182
+ .usage('่Žทๅ–ๅคดๆก็ƒญๆœ')
183
+ .examples('/toutiao', '/tt 20')
184
+ .param('limit', { type: 'number', description: '่ฟ”ๅ›žๆกๆ•ฐ๏ผŒ้ป˜่ฎค10ๆก' })
185
+ .execute(async (args) => {
186
+ const data = await fetchApi<any[]>('/toutiao');
187
+ return ['๐Ÿ”ฅ ๅคดๆก็ƒญๆœ', '', formatList(data, args.limit || 10)].join('\n');
188
+ });
189
+
190
+ // โ”€โ”€ ไธ€่จ€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
191
+ const hitokotoTool = new ZhinTool('hitokoto')
192
+ .desc('่Žทๅ–ไธ€่จ€/ๆฏๆ—ฅไธ€ๅฅ๏ผŒ้šๆœบ่ฟ”ๅ›žไธ€ๆก่ฏญๅฅ')
193
+ .tag('่ฏญๅฝ•', 'ๆ–‡ๅญฆ', '้šๆœบ')
194
+ .keyword('ไธ€่จ€', 'ๆฏๆ—ฅไธ€ๅฅ', '่ฏญๅฝ•', 'ๅ่จ€', 'hitokoto')
195
+ .alias('ไธ€่จ€', 'ๆฏๆ—ฅไธ€ๅฅ', 'yy')
196
+ .usage('่Žทๅ–้šๆœบไธ€่จ€')
197
+ .examples('/hitokoto', '/ไธ€่จ€ i')
198
+ .param('type', {
199
+ type: 'string',
200
+ description:
201
+ '็ฑปๅž‹๏ผša=ๅŠจ็”ป, b=ๆผซ็”ป, c=ๆธธๆˆ, d=ๆ–‡ๅญฆ, e=ๅŽŸๅˆ›, f=็ฝ‘็ปœ, g=ๅ…ถไป–, h=ๅฝฑ่ง†, i=่ฏ—่ฏ, j=็ฝ‘ๆ˜“ไบ‘, k=ๅ“ฒๅญฆ, l=ๆŠ–ๆœบ็ต',
202
+ })
203
+ .execute(async (args) => {
204
+ const params: Record<string, string> | undefined = args.type
205
+ ? { c: args.type }
206
+ : undefined;
207
+ const data = await fetchApi<any>('/hitokoto', params);
208
+ const text = data.hitokoto || data.content || (typeof data === 'string' ? data : '');
209
+ const lines = ['๐Ÿ’ฌ ไธ€่จ€', '', `ใ€Œ${text}ใ€`];
210
+ if (data.from || data.source || data.from_who || data.author) {
211
+ const author = data.from_who || data.author || '';
212
+ const source = data.from || data.source || '';
213
+ lines.push(`โ€”โ€”${author}${source ? `ใ€Š${source}ใ€‹` : ''}`);
214
+ }
215
+ return lines.join('\n');
216
+ });
217
+
218
+ // โ”€โ”€ ๆ‘ธ้ฑผๆ—ฅๅކ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
219
+ const moyuTool = new ZhinTool('moyu')
220
+ .desc('่Žทๅ–ๆ‘ธ้ฑผๆ—ฅๅކ๏ผŒๆŸฅ็œ‹ไปŠๅคฉ้€‚ไธ้€‚ๅˆๆ‘ธ้ฑผ')
221
+ .tag('็”Ÿๆดป', 'ๆ‘ธ้ฑผ', 'ๆ—ฅๅކ')
222
+ .keyword('ๆ‘ธ้ฑผ', 'ๆ‘ธ้ฑผๆ—ฅๅކ', 'moyu')
223
+ .alias('ๆ‘ธ้ฑผ', 'ๆ‘ธ้ฑผๆ—ฅๅކ')
224
+ .usage('่Žทๅ–ๆ‘ธ้ฑผๆ—ฅๅކ')
225
+ .examples('/moyu')
226
+ .execute(async () => {
227
+ const data = await fetchApi<any>('/moyu');
228
+ if (typeof data === 'string') return `๐ŸŸ ๆ‘ธ้ฑผๆ—ฅๅކ\n\n${data}`;
229
+ const lines = ['๐ŸŸ ๆ‘ธ้ฑผๆ—ฅๅކ', ''];
230
+ if (data.date?.gregorian) lines.push(`๐Ÿ“… ${data.date.gregorian} ${data.date.weekday || ''}`);
231
+ if (data.date?.lunar) {
232
+ const l = data.date.lunar;
233
+ lines.push(`๐ŸŒ™ ๅ†œๅކ${l.monthCN || ''}${l.dayCN || ''} ${l.yearGanZhi || ''}ๅนด`);
234
+ }
235
+ if (data.today) {
236
+ const t = data.today;
237
+ if (t.holidayName) lines.push(`๐ŸŽ‰ ${t.holidayName}`);
238
+ if (t.solarTerm) lines.push(`๐ŸŒฟ ${t.solarTerm}`);
239
+ lines.push(t.isWorkday ? '๐Ÿ’ผ ไปŠๅคฉๆ˜ฏๅทฅไฝœๆ—ฅ' : '๐ŸŽฎ ไปŠๅคฉไธไธŠ็ญ');
240
+ }
241
+ if (data.festivals && Array.isArray(data.festivals)) {
242
+ data.festivals.forEach((f: any) => lines.push(`๐ŸŽŠ ${f.name || f}`));
243
+ }
244
+ if (data.countdown && Array.isArray(data.countdown)) {
245
+ lines.push('');
246
+ data.countdown.forEach((c: any) => {
247
+ if (c.name && c.days !== undefined) lines.push(`โณ ่ท ${c.name} ่ฟ˜ๆœ‰ ${c.days} ๅคฉ`);
248
+ });
249
+ }
250
+ return lines.join('\n');
251
+ });
252
+
253
+ // โ”€โ”€ IP ๆŸฅ่ฏข โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
254
+ const ipTool = new ZhinTool('ip_query')
255
+ .desc('ๆŸฅ่ฏข IP ๅœฐๅ€็š„ๅœฐ็†ไฝ็ฝฎไฟกๆฏ')
256
+ .tag('็ฝ‘็ปœ', 'ๆŸฅ่ฏข', 'IP')
257
+ .keyword('ip', 'IP', 'IPๆŸฅ่ฏข', 'ipๆŸฅ่ฏข')
258
+ .alias('IPๆŸฅ่ฏข')
259
+ .usage('ๆŸฅ่ฏข IP ๅœฐๅ€ไฟกๆฏ')
260
+ .examples('/ip', '/ip 8.8.8.8')
261
+ .param('ip', { type: 'string', description: 'IP ๅœฐๅ€๏ผŒไธๅกซๅˆ™ๆŸฅ่ฏขๅฝ“ๅ‰ IP' })
262
+ .execute(async (args) => {
263
+ const params: Record<string, string> | undefined = args.ip
264
+ ? { ip: args.ip }
265
+ : undefined;
266
+ const data = await fetchApi<any>('/ip', params);
267
+ const lines = ['๐ŸŒ IP ๆŸฅ่ฏข', '', `IP: ${data.ip || args.ip || 'ๅฝ“ๅ‰ IP'}`];
268
+ if (data.country || data.region || data.city) {
269
+ lines.push(`ไฝ็ฝฎ: ${[data.country, data.region, data.city].filter(Boolean).join(' ')}`);
270
+ }
271
+ if (data.location) lines.push(`ไฝ็ฝฎ: ${data.location}`);
272
+ if (data.isp) lines.push(`่ฟ่ฅๅ•†: ${data.isp}`);
273
+ return lines.join('\n');
274
+ });
275
+
276
+ // โ”€โ”€ Bing ๆฏๆ—ฅๅ›พ็‰‡ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
277
+ const bingTool = new ZhinTool('bing_image')
278
+ .desc('่Žทๅ– Bing ๆฏๆ—ฅๅฃ็บธๅ›พ็‰‡')
279
+ .tag('ๅ›พ็‰‡', 'ๅฃ็บธ', 'Bing')
280
+ .keyword('bing', 'ๅฟ…ๅบ”', 'ๅฃ็บธ', 'ๆฏๆ—ฅๅฃ็บธ')
281
+ .alias('ๅฟ…ๅบ”', 'ๆฏๆ—ฅๅฃ็บธ')
282
+ .usage('่Žทๅ– Bing ๆฏๆ—ฅๅฃ็บธ')
283
+ .examples('/bing')
284
+ .execute(async () => {
285
+ const data = await fetchApi<any>('/bing');
286
+ const lines = ['๐Ÿ–ผ๏ธ Bing ๆฏๆ—ฅๅฃ็บธ', ''];
287
+ if (data.title) lines.push(`๐Ÿ“Œ ${data.title}`);
288
+ if (data.headline) lines.push(`๐Ÿ’ก ${data.headline}`);
289
+ if (data.copyright) lines.push(`๐Ÿ“ ${data.copyright}`);
290
+ if (data.description) lines.push('', data.description);
291
+ const imgUrl = data.cover || data.cover_4k || data.url || data.image;
292
+ if (imgUrl) lines.push('', imgUrl);
293
+ return lines.join('\n');
294
+ });
295
+
296
+ // โ”€โ”€ ้‡‘ไปท โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
297
+ const goldPriceTool = new ZhinTool('gold_price')
298
+ .desc('ๆŸฅ่ฏขไปŠๆ—ฅ้ป„้‡‘ไปทๆ ผ')
299
+ .tag('้‡‘่ž', '้ป„้‡‘', 'ไปทๆ ผ')
300
+ .keyword('้‡‘ไปท', '้ป„้‡‘', '้ป„้‡‘ไปทๆ ผ', 'gold')
301
+ .alias('้‡‘ไปท', '้ป„้‡‘ไปทๆ ผ', 'jj')
302
+ .usage('ๆŸฅ่ฏขไปŠๆ—ฅ้‡‘ไปท')
303
+ .examples('/gold', '/้‡‘ไปท')
304
+ .execute(async () => {
305
+ const data = await fetchApi<any>('/gold-price');
306
+ const lines = ['๐Ÿ’ฐ ไปŠๆ—ฅ้‡‘ไปท', ''];
307
+ if (data.date) lines.push(`๐Ÿ“… ${data.date}`);
308
+ const metals = data.metals || (Array.isArray(data) ? data : []);
309
+ if (metals.length > 0) {
310
+ lines.push('');
311
+ metals.forEach((item: any) => {
312
+ const name = item.name || '้ป„้‡‘';
313
+ const price = item.today_price || item.sell_price || item.price || 'N/A';
314
+ const unit = item.unit || 'ๅ…ƒ/ๅ…‹';
315
+ if (price !== 'N/A') lines.push(`${name}: ยฅ${price} ${unit}`);
316
+ });
317
+ } else if (data.price) {
318
+ lines.push(`ๅฝ“ๅ‰้‡‘ไปท: ยฅ${data.price}/ๅ…‹`);
319
+ }
320
+ return lines.join('\n');
321
+ });
322
+
323
+ // โ”€โ”€ ๆฒนไปท โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
324
+ const fuelPriceTool = new ZhinTool('fuel_price')
325
+ .desc('ๆŸฅ่ฏขไปŠๆ—ฅๆฒนไปท')
326
+ .tag('็”Ÿๆดป', 'ๆฒนไปท', 'ไปทๆ ผ')
327
+ .keyword('ๆฒนไปท', 'ๆฑฝๆฒน', 'ๆŸดๆฒน', 'fuel')
328
+ .alias('ๆฒนไปท', 'yj')
329
+ .usage('ๆŸฅ่ฏขไปŠๆ—ฅๆฒนไปท')
330
+ .examples('/fuel', '/ๆฒนไปท ๅ››ๅท')
331
+ .param('province', { type: 'string', description: '็œไปฝๅ็งฐ๏ผŒๅฆ‚"ๅ››ๅท"ใ€"ๅŒ—ไบฌ"' })
332
+ .execute(async (args) => {
333
+ const params: Record<string, string> | undefined = args.province
334
+ ? { province: args.province }
335
+ : undefined;
336
+ const data = await fetchApi<any>('/fuel-price', params);
337
+ const lines = ['โ›ฝ ไปŠๆ—ฅๆฒนไปท', ''];
338
+ if (data.region) lines.push(`๐Ÿ“ ${data.region}`);
339
+ if (data.items && Array.isArray(data.items)) {
340
+ data.items.forEach((item: any) => {
341
+ lines.push(`${item.name}: ${item.price_desc || `ยฅ${item.price}/ๅ‡`}`);
342
+ });
343
+ }
344
+ if (data.trend) {
345
+ lines.push('', `๐Ÿ“Š ${data.trend.description || ''}`);
346
+ }
347
+ return lines.join('\n');
348
+ });
349
+
350
+ // โ”€โ”€ ๆฑ‡็އ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
351
+ const exchangeRateTool = new ZhinTool('exchange_rate')
352
+ .desc('ๆŸฅ่ฏข่ดงๅธๆฑ‡็އ')
353
+ .tag('้‡‘่ž', 'ๆฑ‡็އ', 'ๆŸฅ่ฏข')
354
+ .keyword('ๆฑ‡็އ', 'ๅ…‘ๆข', 'ๅค–ๆฑ‡', 'exchange', 'rate')
355
+ .alias('ๆฑ‡็އ', 'hl')
356
+ .usage('ๆŸฅ่ฏขๆฑ‡็އ')
357
+ .examples('/exchange USD CNY', '/ๆฑ‡็އ')
358
+ .param('from', { type: 'string', description: 'ๆบ่ดงๅธ๏ผŒๅฆ‚ USD, EUR, JPY' })
359
+ .param('to', { type: 'string', description: '็›ฎๆ ‡่ดงๅธ๏ผŒๅฆ‚ CNY' })
360
+ .execute(async (args) => {
361
+ const params: Record<string, string> = {};
362
+ if (args.from) params.from = args.from.toUpperCase();
363
+ if (args.to) params.to = args.to.toUpperCase();
364
+ const data = await fetchApi<any>(
365
+ '/exchange-rate',
366
+ Object.keys(params).length ? params : undefined,
367
+ );
368
+ const lines = ['๐Ÿ’ฑ ๆฑ‡็އๆŸฅ่ฏข', ''];
369
+ const base = data.base_code || args.from || 'CNY';
370
+ lines.push(`ๅŸบๅ‡†่ดงๅธ: ${base}`);
371
+ if (data.updated) lines.push(`ๆ›ดๆ–ฐๆ—ถ้—ด: ${data.updated}`);
372
+ lines.push('');
373
+ const rates = data.rates || (Array.isArray(data) ? data : []);
374
+ const targetCurrencies = args.to
375
+ ? [args.to.toUpperCase()]
376
+ : ['USD', 'EUR', 'JPY', 'GBP', 'HKD', 'KRW', 'AUD', 'CAD', 'SGD', 'CHF'];
377
+ rates.forEach((item: any) => {
378
+ if (targetCurrencies.includes(item.currency) && item.currency !== base) {
379
+ lines.push(`${base} โ†’ ${item.currency}: ${item.rate}`);
380
+ }
381
+ });
382
+ return lines.join('\n');
383
+ });
384
+
385
+ // โ”€โ”€ ็ฟป่ฏ‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
386
+ const translateTool = new ZhinTool('translate_60s')
387
+ .desc('็ฟป่ฏ‘ๆ–‡ๆœฌ')
388
+ .tag('ๅทฅๅ…ท', '็ฟป่ฏ‘', '่ฏญ่จ€')
389
+ .keyword('็ฟป่ฏ‘', '่‹ฑๆ–‡', 'ไธญๆ–‡', 'ๆ—ฅๆ–‡', 'translate', '่ฏ‘')
390
+ .alias('็ฟป่ฏ‘', 'fy')
391
+ .usage('็ฟป่ฏ‘ๆ–‡ๆœฌ')
392
+ .examples('/fanyi hello', '/็ฟป่ฏ‘ ไฝ ๅฅฝ en')
393
+ .param('text', { type: 'string', description: '่ฆ็ฟป่ฏ‘็š„ๆ–‡ๆœฌ' }, true)
394
+ .param('to', { type: 'string', description: '็›ฎๆ ‡่ฏญ่จ€๏ผŒๅฆ‚ en, zh, ja' })
395
+ .execute(async (args) => {
396
+ const params: Record<string, string> = { text: args.text };
397
+ if (args.to) params.to = args.to;
398
+ const data = await fetchApi<any>('/fanyi', params);
399
+ const srcText = data.source?.text || args.text;
400
+ const srcLang = data.source?.type_desc || data.source?.type || '';
401
+ const tgtText = data.target?.text || data.result || data.translation || (typeof data === 'string' ? data : '');
402
+ const tgtLang = data.target?.type_desc || data.target?.type || '';
403
+ const lines = [
404
+ '๐ŸŒ ็ฟป่ฏ‘็ป“ๆžœ',
405
+ '',
406
+ `ๅŽŸๆ–‡${srcLang ? ` (${srcLang})` : ''}: ${srcText}`,
407
+ `่ฏ‘ๆ–‡${tgtLang ? ` (${tgtLang})` : ''}: ${tgtText}`,
408
+ ];
409
+ if (data.target?.pronounce) lines.push(`ๅ‘้Ÿณ: ${data.target.pronounce}`);
410
+ return lines.join('\n');
411
+ });
412
+
413
+ // โ”€โ”€ ๅކๅฒไธŠ็š„ไปŠๅคฉ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
414
+ const historyTodayTool = new ZhinTool('history_today')
415
+ .desc('ๆŸฅ็œ‹ๅކๅฒไธŠ็š„ไปŠๅคฉๅ‘็”Ÿไบ†ไป€ไนˆ')
416
+ .tag('ๅކๅฒ', '็Ÿฅ่ฏ†', 'ๆ—ฅๅކ')
417
+ .keyword('ๅކๅฒ', 'ๅކๅฒไธŠ็š„ไปŠๅคฉ', 'ไปŠๅคฉๅކๅฒ', 'history')
418
+ .alias('ๅކๅฒไธŠ็š„ไปŠๅคฉ', 'ๅކๅฒ')
419
+ .usage('ๆŸฅ็œ‹ๅކๅฒไธŠ็š„ไปŠๅคฉ')
420
+ .examples('/history')
421
+ .execute(async () => {
422
+ const data = await fetchApi<any>('/today-in-history');
423
+ const dateStr = data.date || `${data.month || ''}ๆœˆ${data.day || ''}ๆ—ฅ`;
424
+ const lines = [`๐Ÿ“… ๅކๅฒไธŠ็š„ไปŠๅคฉ (${dateStr})`, ''];
425
+ const items = data.items || (Array.isArray(data) ? data : []);
426
+ items.slice(0, 10).forEach((item: any, i: number) => {
427
+ const year = item.year || '';
428
+ const title = item.title || item.event || item.content || item;
429
+ const typeIcon = item.event_type === 'birth' ? '๐Ÿ‘ถ' : item.event_type === 'death' ? '๐Ÿ•Š๏ธ' : '๐Ÿ“Œ';
430
+ lines.push(`${typeIcon} ${i + 1}. ${year ? `[${year}] ` : ''}${title}`);
431
+ });
432
+ return lines.join('\n');
433
+ });
434
+
435
+ // โ”€โ”€ KFC ็–ฏ็‹‚ๆ˜ŸๆœŸๅ›› โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
436
+ const kfcTool = new ZhinTool('kfc')
437
+ .desc('่Žทๅ– KFC ็–ฏ็‹‚ๆ˜ŸๆœŸๅ››ๆ–‡ๆกˆ')
438
+ .tag('ๅจฑไน', 'KFC', 'ๆ–‡ๆกˆ')
439
+ .keyword('kfc', 'KFC', '็–ฏ็‹‚ๆ˜ŸๆœŸๅ››', 'v50', '่‚ฏๅพทๅŸบ')
440
+ .alias('็–ฏ็‹‚ๆ˜ŸๆœŸๅ››', 'v50')
441
+ .usage('่Žทๅ– KFC ๆ–‡ๆกˆ')
442
+ .examples('/kfc')
443
+ .execute(async () => {
444
+ const data = await fetchApi<any>('/kfc');
445
+ return `๐Ÿ— ็–ฏ็‹‚ๆ˜ŸๆœŸๅ››\n\n${data.kfc || data.content || data.text || (typeof data === 'string' ? data : '')}`;
446
+ });
447
+
448
+ // โ”€โ”€ ๆฎตๅญ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
449
+ const duanziTool = new ZhinTool('duanzi')
450
+ .desc('่Žทๅ–ไธ€ไธชๆฎตๅญ')
451
+ .tag('ๅจฑไน', '็ฌ‘่ฏ', 'ๆฎตๅญ')
452
+ .keyword('ๆฎตๅญ', '็ฌ‘่ฏ', 'ๆž็ฌ‘', 'joke', 'duanzi')
453
+ .alias('ๆฎตๅญ', 'joke')
454
+ .usage('่Žทๅ–ๆฎตๅญ')
455
+ .examples('/duanzi')
456
+ .execute(async () => {
457
+ const data = await fetchApi<any>('/duanzi');
458
+ return `๐Ÿ˜‚ ๆฎตๅญ\n\n${data.duanzi || data.content || data.text || (typeof data === 'string' ? data : '')}`;
459
+ });
460
+
461
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
462
+ // ๆณจๅ†Œๆ‰€ๆœ‰ๅทฅๅ…ท
463
+ // โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
464
+
465
+ const allTools = [
466
+ newsTool,
467
+ weatherTool,
468
+ weiboTool,
469
+ zhihuTool,
470
+ douyinTool,
471
+ toutiaoTool,
472
+ hitokotoTool,
473
+ moyuTool,
474
+ ipTool,
475
+ bingTool,
476
+ goldPriceTool,
477
+ fuelPriceTool,
478
+ exchangeRateTool,
479
+ translateTool,
480
+ historyTodayTool,
481
+ kfcTool,
482
+ duanziTool,
483
+ ];
484
+
485
+ allTools.forEach((tool) => plugin.addTool(tool.toTool()));
486
+
487
+ logger.debug(`[60s] ๅทฒๆณจๅ†Œ ${allTools.length} ไธชๅทฅๅ…ท`);