(msg: Api.Message, args: string[])
| 1434 | } |
| 1435 | |
| 1436 | async function handleTelegraph(msg: Api.Message, args: string[]): Promise<void> { |
| 1437 | const subCommand = args[0]; |
| 1438 | |
| 1439 | switch (subCommand) { |
| 1440 | case "on": |
| 1441 | ConfigManager.set(CONFIG_KEYS.GEMINI_TELEGRAPH_ENABLED, "on"); |
| 1442 | await msg.edit({ text: "✅ Telegraph集成已启用", parseMode: "html" }); |
| 1443 | break; |
| 1444 | case "off": |
| 1445 | ConfigManager.set(CONFIG_KEYS.GEMINI_TELEGRAPH_ENABLED, "off"); |
| 1446 | await msg.edit({ text: "✅ Telegraph集成已禁用", parseMode: "html" }); |
| 1447 | break; |
| 1448 | case "limit": |
| 1449 | if (args[1]) { |
| 1450 | const validation = Utils.validateConfig(CONFIG_KEYS.GEMINI_TELEGRAPH_LIMIT, args[1]); |
| 1451 | if (!validation.isValid) { |
| 1452 | await msg.edit({ text: `❌ ${validation.error}` }); |
| 1453 | return; |
| 1454 | } |
| 1455 | ConfigManager.set(CONFIG_KEYS.GEMINI_TELEGRAPH_LIMIT, args[1]); |
| 1456 | await msg.edit({ text: `✅ Telegraph字符限制已设置为 ${args[1]}`, parseMode: "html" }); |
| 1457 | } else { |
| 1458 | await msg.edit({ text: "❌ 用法: gemini telegraph limit <数字>" }); |
| 1459 | } |
| 1460 | break; |
| 1461 | case "list": |
| 1462 | const posts = JSON.parse(ConfigManager.get(CONFIG_KEYS.GEMINI_TELEGRAPH_POSTS, "{}")); |
| 1463 | if (Object.keys(posts).length === 0) { |
| 1464 | await msg.edit({ text: "<b>尚未创建Telegraph文章。</b>", parseMode: "html" }); |
| 1465 | return; |
| 1466 | } |
| 1467 | |
| 1468 | const postsList = Object.entries(posts) |
| 1469 | .map(([id, data]: [string, any]) => `• <code>${id}</code>: <a href="https://telegra.ph/${data.path}">${Utils.escapeHtml(data.title)}</a>`) |
| 1470 | .join("\n"); |
| 1471 | |
| 1472 | await msg.edit({ |
| 1473 | text: `<b>已创建的Telegraph文章:</b>\n\n${postsList}`, |
| 1474 | parseMode: "html", |
| 1475 | linkPreview: false |
| 1476 | }); |
| 1477 | break; |
| 1478 | case "del": |
| 1479 | const delTarget = args[1]; |
| 1480 | if (!delTarget) { |
| 1481 | await msg.edit({ text: "❌ 用法: gemini telegraph del [id|all]" }); |
| 1482 | return; |
| 1483 | } |
| 1484 | |
| 1485 | const currentPosts = JSON.parse(ConfigManager.get(CONFIG_KEYS.GEMINI_TELEGRAPH_POSTS, "{}")); |
| 1486 | |
| 1487 | if (delTarget === "all") { |
| 1488 | ConfigManager.set(CONFIG_KEYS.GEMINI_TELEGRAPH_POSTS, "{}"); |
| 1489 | await msg.edit({ text: "✅ 已删除所有Telegraph文章", parseMode: "html" }); |
| 1490 | } else { |
| 1491 | if (currentPosts[delTarget]) { |
| 1492 | delete currentPosts[delTarget]; |
| 1493 | ConfigManager.set(CONFIG_KEYS.GEMINI_TELEGRAPH_POSTS, JSON.stringify(currentPosts)); |
no test coverage detected