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

Method handleRemoveRule

autodelcmd/autodelcmd.ts:974–1032  ·  view source on GitHub ↗
(msg: Api.Message, args: string[])

Source from the content-addressed store, hash-verified

972 await msg.edit({
973 text: `❌ 参数不足\n用法: <code>${mainPrefix}autodelcmd del [规则ID或命令名]</code>\n\n` +
974 `<b>删除方式:</b>\n` +
975 `• 使用规则ID删除: <code>${mainPrefix}autodelcmd del [规则ID]</code>\n` +
976 `• 使用命令名查看规则: <code>${mainPrefix}autodelcmd del [命令名]</code>\n\n` +
977 `<b>示例:</b>\n` +
978 `• <code>${mainPrefix}autodelcmd del 1</code> - 使用ID删除规则\n` +
979 `• <code>${mainPrefix}autodelcmd del ping</code> - 查看ping命令的所有规则\n` +
980 `• 使用 <code>${mainPrefix}autodelcmd list</code> 查看所有规则和ID`,
981 parseMode: "html"
982 });
983 return;
984 }
985
986 const input = args[0];
987
988 // 首先尝试按 ID 删除
989 const result = await serviceInstance!.removeCustomRuleById(input);
990
991 if (result.success && result.removedRule) {
992 const rule = result.removedRule;
993 const params = rule.parameters?.length ? ` [${rule.parameters.map((value) => htmlEscape(value)).join(', ')}]` : '';
994 const exact = rule.exactMatch ? ' 🎯' : '';
995 const response = rule.deleteResponse ? ' 🔄' : '';
996
997 await msg.edit({
998 text: `✅ 已删除自定义规则:\n<code>${htmlEscape(rule.command)}${params}</code> → ${rule.delay}秒${response}${exact}\n\n<code>[ID: ${htmlEscape(rule.id || "")}]</code>`,
999 parseMode: "html"
1000 });
1001 return;
1002 }
1003
1004 // 如果 ID 删除失败,尝试按命令名查找规则
1005 const matchingRules = serviceInstance!.getCustomRulesByCommand(input);
1006
1007 if (matchingRules.length === 0) {
1008 await msg.edit({
1009 text: `❌ 未找到匹配的规则\n\n• 规则ID "${htmlEscape(input)}" 不存在\n• 命令 "${htmlEscape(input)}" 没有自定义规则\n\n使用 <code>${mainPrefix}autodelcmd list</code> 查看所有规则`,
1010 parseMode: "html"
1011 });
1012 return;
1013 }
1014
1015 // 显示匹配的规则供用户选择
1016 const safeInput = htmlEscape(input);
1017 let text = `📋 <b>命令 "${safeInput}" 的自定义规则:</b>\n\n`;
1018 matchingRules.forEach((rule, index) => {
1019 const params = rule.parameters?.length ? ` [${rule.parameters.map((value) => htmlEscape(value)).join(', ')}]` : '';
1020 const exact = rule.exactMatch ? ' 🎯' : '';
1021 const response = rule.deleteResponse ? ' 🔄' : '';
1022 const ruleId = htmlEscape(rule.id || 'unknown');
1023 text += `${index + 1}. <code>${htmlEscape(rule.command)}${params}</code> → ${rule.delay}秒${response}${exact}\n`;
1024 text += ` <code>删除: ${mainPrefix}autodelcmd del ${ruleId}</code>\n\n`;
1025 });
1026
1027 await msg.edit({ text, parseMode: "html" });
1028 }
1029
1030 private async handleReset(msg: Api.Message) {
1031 await serviceInstance!.resetToDefaults();

Callers 1

AutoDeletePluginClass · 0.95

Calls 4

removeCustomRuleByIdMethod · 0.80
htmlEscapeFunction · 0.70
editMethod · 0.45

Tested by

no test coverage detected