diff options
Diffstat (limited to 'chat.js')
| -rw-r--r-- | chat.js | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -2,4 +2,34 @@ function getChannelName() { const path = window.location.pathname.split('/').filter(Boolean); if (path.length == 1) return path[path.length - 1]; return null; +} + +function replaceEmotes(node, emotes) { + const walker = document.createTreeWalker(node, NodeFilter.SHOW_TEXT, null); + + const textNodes = []; + while (walker.nextNode()) textNodes.push(walker.currentNode); + + textNodes.forEach(x => { + const parent = x.parentNode; + const frag = document.createDocumentFragment(); + const words = x.textContent.split(/(\s+)/); + + words.forEach(word => { + if (emotes[word]) { + const emote = emotes[word]; + + const img = document.createElement("img"); + img.src = emote.miniatureurl; + img.alt = word; + img.classList.add("tiny-emote"); + img.addEventListener("mouseenter", () => console.log(word)); + frag.appendChild(img); + } else { + frag.appendChild(document.createTextNode(word)); + } + }); + + parent.replaceChild(frag, x); + }); }
\ No newline at end of file |
