msgpackager.js 2.0 KB

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