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

Class AutoRepeatPlugin

autorepeat/autorepeat.ts:723–766  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

721 }
722 pendingTimers.clear();
723 AutoRepeatManager.cleanup();
724 }
725 // 修改类名
726 description: string = HELP_TEXT;
727
728 cmdHandlers: Record<string, (msg: Api.Message) => Promise<void>> = {
729 autorepeat: async (msg) => { // 修改命令名
730 const client = await getGlobalClient();
731 if (!client) {
732 await MessageManager.smartEdit(msg, "❌ 客户端未初始化");
733 return;
734 }
735 await CommandHandlers.handleAutoRepeatCommand(msg); // 修改调用函数名
736 },
737 };
738
739 listenMessageHandler = async (msg: Api.Message) => {
740 try {
741 if (!msg) return;
742
743 const msgDate = Number((msg as any).date);
744 if (!Number.isFinite(msgDate) || msgDate <= 0) return;
745
746 // 忽略之前的旧消息(只处理实时消息)
747 if (Date.now() / 1000 - msgDate > 60) return;
748
749 // 忽略自己发送的消息
750 if (msg.out) return;
751
752 // 仅使用 update 已携带的实体,避免无效/已退出频道触发额外 RPC 和错误日志。
753 // 缺少实体时无法可靠判断机器人身份,宁可跳过本条消息。
754 const sender = msg.sender;
755 if (!sender) return;
756 if (sender instanceof Api.User && sender.bot) {
757 return;
758 }
759
760 await AutoRepeatManager.checkAndRepeat(msg);
761 } catch (e: any) {
762 console.error(`[autorepeat] listenMessageHandler error:`, e?.message || e);
763 }
764 };
765}
766
767// 导出插件实例
768export default new AutoRepeatPlugin(); // 修改实例名

Callers

nothing calls this directly

Calls 3

checkAndRepeatMethod · 0.80
smartEditMethod · 0.45

Tested by

no test coverage detected