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

Method processMessage

save/save.ts:805–893  ·  view source on GitHub ↗
(
    sourceMsg: Api.Message, 
    targetPeer: any, 
    replyMsg: Api.Message,
    sourceChatId: string,
    sourceMessageId: number,
    progress: string = ""
  )

Source from the content-addressed store, hash-verified

803 return {
804 success: true,
805 forwardedMsg: forwardedMessage,
806 source: { chatId: sourceChatId, messageId: sourceMessageId }
807 };
808 } else {
809 await this.safeEditMessage(replyMsg, `${progress}❌ 消息无内容可转发`, true);
810 return { success: false };
811 }
812 }
813
814 tempFileInfo = await this.downloadMedia(sourceMsg, 0, replyMsg);
815 if (!tempFileInfo) {
816 await this.safeEditMessage(replyMsg, `${progress}❌ 下载媒体失败`, true);
817 return { success: false };
818 }
819
820 // 发送媒体消息,获取发送的消息
821 forwardedMessage = await this.sendSingleMedia(client, targetPeer, tempFileInfo, replyMsg);
822 await this.safeEditMessage(replyMsg, `${progress}✅ 内容已重新上传发送`, true);
823
824 // 如果开启了来源显示,发送来源消息
825 return {
826 success: true,
827 forwardedMsg: forwardedMessage,
828 source: { chatId: sourceChatId, messageId: sourceMessageId }
829 };
830 }
831 } catch (error: unknown) {
832 logger.error(`处理消息失败:`, error);
833 await this.safeEditMessage(replyMsg, `${progress}❌ 处理失败: ${htmlEscape(getErrorMessage(error) || "未知错误")}`, true);
834 return { success: false };
835 } finally {
836 if (tempFileInfo?.path) {
837 await this.cleanupTempFile(tempFileInfo.path);
838 }
839 }
840 }
841
842 private async processMessageToLocal(
843 sourceMsg: MessageContext,
844 replyMsg: MessageContext,
845 sourceChatId: string,
846 sourceMessageId: number,
847 progress: string = "",
848 options?: { groupDirName?: string; quietSuccess?: boolean }
849 ): Promise<ProcessMessageResult> {
850 try {
851 if (!sourceMsg.media) {
852 await this.safeEditMessage(replyMsg, `${progress}⏭️ 消息不包含媒体文件,已跳过`, true);
853 return { success: false, skipped: true };
854 }
855
856 await this.safeEditMessage(replyMsg, `${progress}💾 正在保存媒体到本地...`, true);
857 const savedFile = await this.saveMediaToLocal(sourceMsg, sourceChatId, sourceMessageId, replyMsg, 0, options);
858
859 if (!savedFile) {
860 await this.safeEditMessage(replyMsg, `${progress}❌ 保存到本地失败`, true);
861 return { success: false };
862 }

Callers 2

processMessageRangeMethod · 0.95
handleCommandMethod · 0.95

Calls 6

safeEditMessageMethod · 0.95
downloadMediaMethod · 0.95
sendSingleMediaMethod · 0.95
cleanupTempFileMethod · 0.95
errorMethod · 0.80
htmlEscapeFunction · 0.70

Tested by

no test coverage detected