import { PadplusMessagePayload, GrpcResponseMessageData, MiniProgramParamsPayload } from '../schemas/model-message' import { PadplusMessageType, GrpcMessagePayload, WechatAppMessageType, } from '../schemas' import { MiniProgramPayload } from 'wechaty-puppet' export async function convertMessageFromGrpcToPadplus (rawMessage: GrpcMessagePayload): Promise { const messagePayload: PadplusMessagePayload = { appMsgType: rawMessage.AppMsgType, content: rawMessage.Content, createTime: rawMessage.CreateTime, fileName: rawMessage.FileName || rawMessage.fileName, fromMemberNickName: rawMessage.FromMemberNickName, fromMemberUserName: rawMessage.FromMemberUserName, fromUserName: rawMessage.FromUserName, imgBuf: rawMessage.ImgBuf, imgStatus: rawMessage.ImgStatus, l1MsgType: rawMessage.L1MsgType, msgId: rawMessage.MsgId, msgSource: rawMessage.MsgSource, msgSourceCd: rawMessage.msgSourceCd, msgType: rawMessage.MsgType as PadplusMessageType, newMsgId: rawMessage.NewMsgId, pushContent: rawMessage.PushContent, status: rawMessage.Status, toUserName: rawMessage.ToUserName, uin: rawMessage.Uin, url: rawMessage.Url, wechatUserName: rawMessage.wechatUserName, } return messagePayload } export function convertMiniProgramPayloadToParams (miniProgramPayload: MiniProgramPayload): MiniProgramParamsPayload { const content: MiniProgramParamsPayload = { aeskey: miniProgramPayload.thumbKey || '', appid: miniProgramPayload.appid || '', cdnthumbaeskey: miniProgramPayload.thumbKey || '', cdnthumbheight: 0, cdnthumblength: 0, cdnthumburl: miniProgramPayload.thumbUrl || '', cdnthumbwidth: 0, description: miniProgramPayload.description || '', pagepath: miniProgramPayload.pagePath || '', sourcedisplayname: miniProgramPayload.title || '', sourceusername: miniProgramPayload.username || '', title: miniProgramPayload.title || '', type: WechatAppMessageType.MiniProgramApp, url: `https://mp.weixin.qq.com/mp/waerrpage?appid=${miniProgramPayload.appid}&type=upgrade&upgradetype=3#wechat_redirect`, username: miniProgramPayload.username || '', version: '1', weappiconurl: '', } return content } export function convertMiniProgramPayloadToMessage (selfId: string, conversationId: string, source: string, content: MiniProgramParamsPayload, miniProgramData: GrpcResponseMessageData): PadplusMessagePayload { const xml = `\n\n\t\n\t\t${content.title}\n\t\t${content.description}\n\t\tview\n\t\t${content.type}\n\t\t0\n\t\t0\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t0\n\t\thttps://mp.weixin.qq.com/mp/waerrpage?appid=${content.appid}&type=upgrade&upgradetype=3#wechat_redirect\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t0\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t${content.cdnthumburl}\n\t\t\t\n\t\t\t${content.cdnthumblength}\n\t\t\t${content.cdnthumbwidth}\n\t\t\t${content.cdnthumbwidth}\n\t\t\t${content.cdnthumbaeskey}\n\t\t\t${content.aeskey}\n\t\t\t0\n\t\t\twxid_orp7dihe2pm112199_1587623589\n\t\t\n\t\t\n\t\t${content.username}\n\t\t${content.title}\n\t\t\n\t\t\n\t\t\n\t\t0\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t0\n\t\t\t${content.version}\n\t\t\t\n\t\t\t\n\t\t\t0\n\t\t\t0\n\t\t\n\t\n\t${selfId}\n\t0\n\t\n\t\t1\n\t\t\n\t\n\t\n\n` const msgPayload: PadplusMessagePayload = { content: xml, createTime: miniProgramData.timestamp, fromUserName: selfId, imgStatus: 0, l1MsgType: 0, msgId: miniProgramData.msgId, msgSource: source, msgSourceCd: 0, msgType: PadplusMessageType.App, newMsgId: Number(miniProgramData.msgId), pushContent: JSON.stringify(content), status: 1, toUserName: conversationId, uin: '', wechatUserName: '', } return msgPayload }