MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / handleTelegraph

Function handleTelegraph

outdated/gemini/gemini.ts:1436–1503  ·  view source on GitHub ↗
(msg: Api.Message, args: string[])

Source from the content-addressed store, hash-verified

1434}
1435
1436async 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));

Callers 1

handleGeminiRequestFunction · 0.85

Calls 5

validateConfigMethod · 0.80
escapeHtmlMethod · 0.80
setMethod · 0.45
editMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected