msgpackager.js 1.61 KB
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
let WebIM = require("../../../utils/WebIM")["default"];
let msgType = require("msgtype");

module.exports = function(sendableMsg, type, myName){
var time = WebIM.time();
var renderableMsg = {
info: {
from: sendableMsg.body.from,
to: sendableMsg.body.to
},
username: sendableMsg.body.from == myName ? sendableMsg.body.to : sendableMsg.body.from,
yourname: sendableMsg.body.from,
msg: {
type: type,
url: sendableMsg.body.body&&sendableMsg.body.body.url||'',
data: getMsgData(sendableMsg, type),
ext: sendableMsg.body.ext
},
style: sendableMsg.body.from == myName ? "self" : "user",
time: time,
mid: sendableMsg.type + sendableMsg.id,
chatType: sendableMsg.body.chatType,
ext: sendableMsg.body.ext
};
if(type == msgType.IMAGE){
renderableMsg.msg.size = {
width: sendableMsg.body.body&&sendableMsg.body.body.size.width||'',
height: sendableMsg.body.body&&sendableMsg.body.body.size.height||'',
};
}else if (type == msgType.AUDIO) {
renderableMsg.msg.length = sendableMsg.body.length;
}else if (type == msgType.FILE){
renderableMsg.msg.data = [{data: "[当前不支持此格式消息展示]", type: "txt"}];
renderableMsg.msg.type = 'txt';
}
return renderableMsg;

function getMsgData(sendableMsg, type){
if(type == msgType.TEXT){
return WebIM.parseEmoji(sendableMsg.value.replace(/\n/mg, ""));
}
else if(type == msgType.EMOJI){
return sendableMsg.value;
}
else if(type == msgType.IMAGE || type == msgType.VIDEO || type == msgType.AUDIO){
return sendableMsg.body.body.url;
} else if (type == msgType.FILE) {
return sendableMsg.body.body.msg
}
return "";
}
};