(msg: Api.Message, args: string[])
| 1517 | } |
| 1518 | |
| 1519 | async function handlePrompt(msg: Api.Message, args: string[]): Promise<void> { |
| 1520 | const [subCommand, ...subArgs] = args; |
| 1521 | const prompts = JSON.parse(ConfigManager.get(CONFIG_KEYS.GEMINI_PROMPTS, "{}")); |
| 1522 | |
| 1523 | switch (subCommand) { |
| 1524 | case "add": |
| 1525 | if (subArgs.length < 2) { |
| 1526 | await msg.edit({ text: "❌ 用法: gemini prompt add <名称> <提示内容>" }); |
| 1527 | return; |
| 1528 | } |
| 1529 | const [name, ...promptParts] = subArgs; |
| 1530 | prompts[name] = promptParts.join(" "); |
| 1531 | ConfigManager.set(CONFIG_KEYS.GEMINI_PROMPTS, JSON.stringify(prompts)); |
| 1532 | await msg.edit({ text: `✅ 系统提示 '${name}' 已添加`, parseMode: "html" }); |
| 1533 | break; |
| 1534 | |
| 1535 | case "del": |
| 1536 | const delName = subArgs[0]; |
| 1537 | if (!delName) { |
| 1538 | await msg.edit({ text: "❌ 用法: gemini prompt del <名称>" }); |
| 1539 | return; |
| 1540 | } |
| 1541 | if (delName in prompts) { |
| 1542 | delete prompts[delName]; |
| 1543 | ConfigManager.set(CONFIG_KEYS.GEMINI_PROMPTS, JSON.stringify(prompts)); |
| 1544 | await msg.edit({ text: `✅ 系统提示 '${delName}' 已删除`, parseMode: "html" }); |
| 1545 | } else { |
| 1546 | await msg.edit({ text: `❌ 未找到系统提示 '${delName}'` }); |
| 1547 | } |
| 1548 | break; |
| 1549 | |
| 1550 | case "list": |
| 1551 | if (Object.keys(prompts).length === 0) { |
| 1552 | await msg.edit({ text: "<b>未保存任何系统提示。</b>", parseMode: "html" }); |
| 1553 | return; |
| 1554 | } |
| 1555 | const promptsList = Object.entries(prompts) |
| 1556 | .map(([name, content]) => `• <code>${name}</code>:\n<pre><code>${Utils.escapeHtml(content as string)}</code></pre>`) |
| 1557 | .join("\n\n"); |
| 1558 | await msg.edit({ text: `<b>可用的系统提示:</b>\n\n${promptsList}`, parseMode: "html" }); |
| 1559 | break; |
| 1560 | |
| 1561 | case "set": |
| 1562 | const [promptType, setName] = subArgs; |
| 1563 | if (!promptType || !setName) { |
| 1564 | await msg.edit({ text: "❌ 用法: gemini prompt set [chat|search|tts] <名称>" }); |
| 1565 | return; |
| 1566 | } |
| 1567 | |
| 1568 | if (!(setName in prompts)) { |
| 1569 | await msg.edit({ text: `❌ 未找到系统提示 '${setName}'` }); |
| 1570 | return; |
| 1571 | } |
| 1572 | |
| 1573 | const promptConfig = PROMPT_TYPE_MAP[promptType as keyof typeof PROMPT_TYPE_MAP]; |
| 1574 | if (promptConfig) { |
| 1575 | ConfigManager.set(promptConfig.key, setName); |
| 1576 | await msg.edit({ text: `✅ 当前${promptConfig.name}系统提示已设置为: <code>${setName}</code>`, parseMode: "html" }); |
no test coverage detected