MCPcopy
hub / github.com/nodeWechat/wechat4u / forwardMsg

Method forwardMsg

src/core.js:747–823  ·  view source on GitHub ↗
(msg, to)

Source from the content-addressed store, hash-verified

745 }
746
747 forwardMsg (msg, to) {
748 return Promise.resolve().then(() => {
749 let params = {
750 'pass_ticket': this.PROP.passTicket,
751 'fun': 'async',
752 'f': 'json',
753 'lang': 'zh_CN'
754 }
755 let clientMsgId = getClientMsgId()
756 let data = {
757 'BaseRequest': this.getBaseRequest(),
758 'Scene': 2,
759 'Msg': {
760 'Type': msg.MsgType,
761 'MediaId': '',
762 'Content': msg.Content.replace(/&lt;/g, '<').replace(/&gt;/g, '>'),
763 'FromUserName': this.user.UserName,
764 'ToUserName': to,
765 'LocalID': clientMsgId,
766 'ClientMsgId': clientMsgId
767 }
768 }
769 let url, pm
770 switch (msg.MsgType) {
771 case this.CONF.MSGTYPE_TEXT:
772 url = this.CONF.API_webwxsendmsg
773 if (msg.SubMsgType === this.CONF.MSGTYPE_LOCATION) {
774 data.Msg.Type = this.CONF.MSGTYPE_LOCATION
775 data.Msg.Content = msg.OriContent.replace(/&lt;/g, '<').replace(/&gt;/g, '>')
776 }
777 break
778 case this.CONF.MSGTYPE_IMAGE:
779 url = this.CONF.API_webwxsendmsgimg
780 break
781 case this.CONF.MSGTYPE_EMOTICON:
782 url = this.CONF.API_webwxsendemoticon
783 params.fun = 'sys'
784 data.Msg.EMoticonMd5 = msg.Content.replace(/^[\s\S]*?md5\s?=\s?"(.*?)"[\s\S]*?$/, '$1')
785 if (!data.Msg.EMoticonMd5) {
786 throw new Error('商店表情不能转发')
787 }
788 data.Msg.EmojiFlag = 2
789 data.Scene = 0
790 delete data.Msg.MediaId
791 delete data.Msg.Content
792 break
793 case this.CONF.MSGTYPE_MICROVIDEO:
794 case this.CONF.MSGTYPE_VIDEO:
795 url = this.CONF.API_webwxsendmsgvedio
796 data.Msg.Type = this.CONF.MSGTYPE_VIDEO
797 break
798 case this.CONF.MSGTYPE_APP:
799 url = this.CONF.API_webwxsendappmsg
800 data.Msg.Type = msg.AppMsgType
801 data.Msg.Content = data.Msg.Content.replace(
802 /^[\s\S]*?(<appmsg[\s\S]*?<attachid>)[\s\S]*?(<\/attachid>[\s\S]*?<\/appmsg>)[\s\S]*?$/,
803 `$1${msg.MediaId}$2`)
804 break

Callers 1

run-core.jsFile · 0.80

Calls 2

getBaseRequestMethod · 0.95
getClientMsgIdFunction · 0.90

Tested by

no test coverage detected