import { emojiMap, emojiUrl } from "./emojiMap"; /** 传入messageBody(群系统消息SystemMessage,群提示消息GroupTip除外) * payload = { * msgType: 'TIMTextElem', * msgContent: { * text: 'AAA[龇牙]AAA[龇牙]AAA[龇牙AAA]' * } *} **/ export function decodeText(payload) { let renderDom = []; // 文本消息 let temp = payload.text; let left = -1; let right = -1; while (temp !== "") { left = temp.indexOf("["); right = temp.indexOf("]"); switch (left) { case 0: if (right === -1) { renderDom.push({ name: "text", text: temp, }); temp = ""; } else { let _emoji = temp.slice(0, right + 1); if (emojiMap[_emoji]) { renderDom.push({ name: "img", src: emojiUrl + emojiMap[_emoji], }); temp = temp.substring(right + 1); } else { renderDom.push({ name: "text", text: "[", }); temp = temp.slice(1); } } break; case -1: renderDom.push({ name: "text", text: temp, }); temp = ""; break; default: renderDom.push({ name: "text", text: temp.slice(0, left), }); temp = temp.substring(left); break; } } return renderDom; }