(msg, to)
| 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(/</g, '<').replace(/>/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(/</g, '<').replace(/>/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 |
no test coverage detected