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

Class ZprPlugin

zpr/zpr.ts:548–725  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

546 // 引用重置:清空 ZprConfigManager 的静态引用,便于 reload 后重新初始化。
547 ZprConfigManager.cleanup();
548 }
549
550 async setup(): Promise<void> {
551 // 重新初始化配置管理器,确保 reload 后可用
552 await ZprConfigManager.reinit();
553 }
554
555 description = `随机纸片人插件\n\n${help_text}`;
556
557 cmdHandlers: Record<string, (msg: Api.Message, trigger?: Api.Message) => Promise<void>> = {
558 zpr: async (msg: Api.Message): Promise<void> => {
559 try {
560 const client = await getGlobalClient();
561 if (!client) {
562 await editHtmlMessage(msg, "❌ 客户端未初始化");
563 return;
564 }
565
566 // 标准参数解析
567 const lines = msg.text?.trim()?.split(/\r?\n/g) || [];
568 const parts = lines?.[0]?.split(/\s+/) || [];
569 const [, ...args] = parts;
570 const sub = (args[0] || "").toLowerCase();
571
572 // 处理帮助命令
573 if (sub === "help" || sub === "h" ||
574 (args.length > 1 && (args[args.length - 1].toLowerCase() === "help" || args[args.length - 1].toLowerCase() === "h"))) {
575 await editHtmlMessage(msg, help_text);
576 return;
577 }
578
579 // 处理 proxy 子命令
580 if (sub === "proxy") {
581 if (args.length === 1) {
582 // 查看当前反代设置
583 const currentProxy = await ZprConfigManager.getProxyHost();
584 await editHtmlMessage(msg, `🔗 <b>当前反代设置</b>
585
586<b>当前地址:</b> <code>${htmlEscape(currentProxy)}</code>
587
588<b>可用地址:</b>
589${Object.entries(PROXY_HOSTS).map(([key, value]) =>
590`• <code>${htmlEscape(value)}</code> - ${htmlEscape(key)}`).join('\n')}
591
592<b>使用方法:</b>
593<code>${mainPrefix}zpr proxy [地址]</code> - 设置反代地址`);
594 return;
595 }
596
597 // 设置反代地址
598 const newProxy = args[1];
599 const validHosts = Object.values(PROXY_HOSTS);
600
601 if (!validHosts.includes(newProxy)) {
602 await editHtmlMessage(msg, `❌ <b>无效的反代地址</b>
603
604<b>可用地址:</b>
605${Object.entries(PROXY_HOSTS).map(([key, value]) =>

Callers

nothing calls this directly

Calls 8

editHtmlMessageFunction · 0.85
getResultFunction · 0.85
getProxyHostMethod · 0.80
setProxyHostMethod · 0.80
warnMethod · 0.80
errorMethod · 0.80
htmlEscapeFunction · 0.70
deleteMethod · 0.45

Tested by

no test coverage detected