msgpackager.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. let WebIM = require("./WebIM")["default"];
  2. let msgType = require("./msgtype");
  3. module.exports = function (sendableMsg, type, myName) {
  4. var time = WebIM.time();
  5. var renderableMsg = {
  6. info: {
  7. from: sendableMsg.body.from,
  8. to: sendableMsg.body.to
  9. },
  10. username: sendableMsg.body.from == myName ? sendableMsg.body.to : sendableMsg.body.from,
  11. yourname: sendableMsg.body.from,
  12. msg: {
  13. type: type,
  14. url: sendableMsg.body.body && sendableMsg.body.body.url || '',
  15. data: getMsgData(sendableMsg, type),
  16. ext: sendableMsg.body.ext
  17. },
  18. style: sendableMsg.body.from == myName ? "self" : "",
  19. time: time,
  20. mid: sendableMsg.type + sendableMsg.id,
  21. chatType: sendableMsg.body.chatType,
  22. ext: sendableMsg.body.ext,
  23. isFail: false
  24. };
  25. if (type == msgType.IMAGE) {
  26. renderableMsg.msg.size = {
  27. width: sendableMsg.body.body && sendableMsg.body.body.size.width || '',
  28. height: sendableMsg.body.body && sendableMsg.body.body.size.height || '',
  29. };
  30. } else if (type == msgType.AUDIO) {
  31. renderableMsg.msg.length = sendableMsg.body.length;
  32. } else if (type == msgType.FILE) {
  33. renderableMsg.msg.data = [{ data: "[当前不支持此格式消息展示]", type: "txt" }];
  34. renderableMsg.msg.type = 'txt';
  35. }
  36. return renderableMsg;
  37. function getMsgData(sendableMsg, type) {
  38. if (type == msgType.TEXT) {
  39. return WebIM.parseEmoji(sendableMsg.value.replace(/\n/mg, ""));
  40. }
  41. else if (type == msgType.EMOJI) {
  42. return sendableMsg.value;
  43. }
  44. else if (type == msgType.IMAGE || type == msgType.VIDEO || type == msgType.AUDIO) {
  45. return sendableMsg.body.body.url;
  46. } else if (type == msgType.FILE) {
  47. return sendableMsg.body.body.msg
  48. }
  49. return "";
  50. }
  51. };