diff --git a/printer-bot/contents/script.js b/printer-bot/contents/script.js index 0dc74f5..5fa6563 100644 --- a/printer-bot/contents/script.js +++ b/printer-bot/contents/script.js @@ -189,6 +189,54 @@ async function CustomEvent(data) { SetPlatformIcon(iconEl, 'twitch'); } break; + case ('TwitchCustomPowerUpRedemption'): + { + avatarEl.src = await GetAvatar(data.userName, 'twitch'); + titleEl.innerText = `${data["customPowerUp.bitsCost"]} BITS`; + subtitleEl.innerText = `${data.user}`; + + const messageEl = document.createElement('div'); + messageEl.innerHTML = data.rawInput; + + // // Render emotes + // for (i in data.emotes) { + // const emoteElement = ``; + // const emoteName = EscapeRegExp(data.emotes[i].name); + // function EscapeRegExp(string) { + // return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string + // } + + // let regexPattern = emoteName; + + // // Check if the emote name consists only of word characters (alphanumeric and underscore) + // if (/^\w+$/.test(emoteName)) { + // regexPattern = `\\b${emoteName}\\b`; + // } + // else { + // // For non-word emotes, ensure they are surrounded by non-word characters or boundaries + // regexPattern = `(?<=^|[^\\w])${emoteName}(?=$|[^\\w])`; + // } + + // const regex = new RegExp(regexPattern, 'g'); + // messageEl.innerHTML = messageEl.innerHTML.replace(regex, emoteElement); + // } + + // // Render cheermotes + // for (i in data.cheerEmotes) { + // const bits = data.cheerEmotes[i].bits; + // const imageUrl = data.cheerEmotes[i].imageUrl; + // const name = data.cheerEmotes[i].name; + // const cheerEmoteElement = ``; + // const bitsElements = `${bits}` + // messageEl.innerHTML = messageEl.innerHTML.replace(new RegExp(`\\b${name}${bits}\\b`, 'i'), cheerEmoteElement + bitsElements); + // } + + contentEl.appendChild(messageEl); + + // Set the platform icon + SetPlatformIcon(iconEl, 'twitch'); + } + break; // YouTube Events case ('YouTubeNewSponsor'):