From a4d75c930f92034e5d9a8af02d9c29685d65bdf7 Mon Sep 17 00:00:00 2001 From: liyunze <50455574+liyunze-coding@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:19:37 +1000 Subject: [PATCH] added emote support --- widgets/horizontal/config.js | 2 -- widgets/horizontal/scripts/emotes.js | 4 ++-- widgets/horizontal/scripts/streamerbot.js | 20 ++++++++++++++++--- widgets/horizontal/scripts/tasklist-view.js | 6 ++++-- widgets/streamer-only/config.js | 5 +---- widgets/streamer-only/scripts/emotes.js | 4 ++-- widgets/streamer-only/scripts/streamerbot.js | 20 ++++++++++++++++--- .../streamer-only/scripts/tasklist-view.js | 6 ++++-- widgets/vertical/config.js | 2 -- widgets/vertical/scripts/streamerbot.js | 18 ++++++++++++++--- widgets/vertical/scripts/tasklist-view.js | 6 ++++-- 11 files changed, 66 insertions(+), 27 deletions(-) diff --git a/widgets/horizontal/config.js b/widgets/horizontal/config.js index be20050..032dd7c 100644 --- a/widgets/horizontal/config.js +++ b/widgets/horizontal/config.js @@ -23,8 +23,6 @@ const configs = (function () { const emoteSettings = { enabled: true, - channelName: "rythondev", - channelId: "248474026", providers: ["7tv", "bttv", "ffz"], size: "1x", cacheHours: 24, diff --git a/widgets/horizontal/scripts/emotes.js b/widgets/horizontal/scripts/emotes.js index 881f87e..c6eafb9 100644 --- a/widgets/horizontal/scripts/emotes.js +++ b/widgets/horizontal/scripts/emotes.js @@ -13,8 +13,8 @@ class EmoteManager { #patternSize = 0; constructor(config = {}) { - this.#channelName = config.channelName || ""; - this.#channelId = config.channelId || ""; + this.#channelName = config.channelName; + this.#channelId = config.channelId; if (config.providers) this.#providers = config.providers; if (config.size) this.#size = config.size; } diff --git a/widgets/horizontal/scripts/streamerbot.js b/widgets/horizontal/scripts/streamerbot.js index f838b36..51a2b9c 100644 --- a/widgets/horizontal/scripts/streamerbot.js +++ b/widgets/horizontal/scripts/streamerbot.js @@ -135,10 +135,24 @@ async function refresh() { async function onConnect() { taskList = new TaskList(".task-panel"); - if (configs.emoteSettings.enabled && configs.emoteSettings.channelId) { + if (configs.emoteSettings.enabled) { + let broadcaster = await client.getBroadcaster(); + + console.log(broadcaster); + + let broadcasterName = + broadcaster.platforms.twitch?.broadcastUser ?? + broadcaster.platforms.youtube?.broadcastUser ?? + broadcaster.platforms.kick?.broadcastUser; + + let broadcasterId = + broadcaster.platforms.twitch?.broadcastUserId ?? + broadcaster.platforms.youtube?.broadcastUserId ?? + broadcaster.platforms.kick?.broadcastUserId; + window.emoteManager = new EmoteManager({ - channelName: configs.emoteSettings.channelName, - channelId: configs.emoteSettings.channelId, + channelName: broadcasterName, + channelId: broadcasterId, providers: configs.emoteSettings.providers, size: configs.emoteSettings.size, }); diff --git a/widgets/horizontal/scripts/tasklist-view.js b/widgets/horizontal/scripts/tasklist-view.js index 62b5911..edff58c 100644 --- a/widgets/horizontal/scripts/tasklist-view.js +++ b/widgets/horizontal/scripts/tasklist-view.js @@ -339,7 +339,7 @@ class TaskList { let color = section.color ?? localStorage.getItem(`${section.id}-color`); if ( - configs.twitchSettings.autoUserColor && + configs.userColorSettings.autoUserColor && color != undefined && color != "undefined" && color != null @@ -374,7 +374,9 @@ class TaskList { } if (el.dataset.text !== task.text) { el.dataset.text = task.text; - const textEl = el.querySelector(".task-text") || el.querySelector("span:last-child"); + const textEl = + el.querySelector(".task-text") || + el.querySelector("span:last-child"); textEl.innerHTML = this.#parseTaskText(task.text); } el.querySelector(".task-number").textContent = `${i + 1}.`; diff --git a/widgets/streamer-only/config.js b/widgets/streamer-only/config.js index cf97326..4f49262 100644 --- a/widgets/streamer-only/config.js +++ b/widgets/streamer-only/config.js @@ -25,8 +25,6 @@ const configs = (function () { const emoteSettings = { enabled: true, - channelName: "rythondev", - channelId: "248474026", providers: ["7tv", "bttv", "ffz"], size: "1x", cacheHours: 24, @@ -36,8 +34,7 @@ const configs = (function () { username, streamerBotSettings, commands, - twitchSettings, - kickSettings, + userColorSettings, emoteSettings, }; })(); diff --git a/widgets/streamer-only/scripts/emotes.js b/widgets/streamer-only/scripts/emotes.js index 881f87e..c6eafb9 100644 --- a/widgets/streamer-only/scripts/emotes.js +++ b/widgets/streamer-only/scripts/emotes.js @@ -13,8 +13,8 @@ class EmoteManager { #patternSize = 0; constructor(config = {}) { - this.#channelName = config.channelName || ""; - this.#channelId = config.channelId || ""; + this.#channelName = config.channelName; + this.#channelId = config.channelId; if (config.providers) this.#providers = config.providers; if (config.size) this.#size = config.size; } diff --git a/widgets/streamer-only/scripts/streamerbot.js b/widgets/streamer-only/scripts/streamerbot.js index 9dfa7bd..54bef1f 100644 --- a/widgets/streamer-only/scripts/streamerbot.js +++ b/widgets/streamer-only/scripts/streamerbot.js @@ -136,10 +136,24 @@ async function refresh() { async function onConnect() { taskList = new TaskList(".task-panel"); - if (configs.emoteSettings.enabled && configs.emoteSettings.channelId) { + if (configs.emoteSettings.enabled) { + let broadcaster = await client.getBroadcaster(); + + console.log(broadcaster); + + let broadcasterName = + broadcaster.platforms.twitch?.broadcastUser ?? + broadcaster.platforms.youtube?.broadcastUser ?? + broadcaster.platforms.kick?.broadcastUser; + + let broadcasterId = + broadcaster.platforms.twitch?.broadcastUserId ?? + broadcaster.platforms.youtube?.broadcastUserId ?? + broadcaster.platforms.kick?.broadcastUserId; + window.emoteManager = new EmoteManager({ - channelName: configs.emoteSettings.channelName, - channelId: configs.emoteSettings.channelId, + channelName: broadcasterName, + channelId: broadcasterId, providers: configs.emoteSettings.providers, size: configs.emoteSettings.size, }); diff --git a/widgets/streamer-only/scripts/tasklist-view.js b/widgets/streamer-only/scripts/tasklist-view.js index 88af472..68e67b8 100644 --- a/widgets/streamer-only/scripts/tasklist-view.js +++ b/widgets/streamer-only/scripts/tasklist-view.js @@ -316,7 +316,7 @@ class TaskList { let color = section.color ?? localStorage.getItem(`${section.id}-color`); if ( - configs.twitchSettings.autoUserColor && + configs.userColorSettings.autoUserColor && color != undefined && color != "undefined" && color != null @@ -351,7 +351,9 @@ class TaskList { } if (el.dataset.text !== task.text) { el.dataset.text = task.text; - const textEl = el.querySelector(".task-text") || el.querySelector("span:last-child"); + const textEl = + el.querySelector(".task-text") || + el.querySelector("span:last-child"); textEl.innerHTML = this.#parseTaskText(task.text); } el.querySelector(".task-number").textContent = `${i + 1}.`; diff --git a/widgets/vertical/config.js b/widgets/vertical/config.js index be20050..032dd7c 100644 --- a/widgets/vertical/config.js +++ b/widgets/vertical/config.js @@ -23,8 +23,6 @@ const configs = (function () { const emoteSettings = { enabled: true, - channelName: "rythondev", - channelId: "248474026", providers: ["7tv", "bttv", "ffz"], size: "1x", cacheHours: 24, diff --git a/widgets/vertical/scripts/streamerbot.js b/widgets/vertical/scripts/streamerbot.js index f838b36..6aa5b00 100644 --- a/widgets/vertical/scripts/streamerbot.js +++ b/widgets/vertical/scripts/streamerbot.js @@ -135,10 +135,22 @@ async function refresh() { async function onConnect() { taskList = new TaskList(".task-panel"); - if (configs.emoteSettings.enabled && configs.emoteSettings.channelId) { + if (configs.emoteSettings.enabled) { + let broadcaster = await client.getBroadcaster(); + + let broadcasterName = + broadcaster.platforms.twitch?.broadcastUser ?? + broadcaster.platforms.youtube?.broadcastUser ?? + broadcaster.platforms.kick?.broadcastUser; + + let broadcasterId = + broadcaster.platforms.twitch?.broadcastUserId ?? + broadcaster.platforms.youtube?.broadcastUserId ?? + broadcaster.platforms.kick?.broadcastUserId; + window.emoteManager = new EmoteManager({ - channelName: configs.emoteSettings.channelName, - channelId: configs.emoteSettings.channelId, + channelName: broadcasterName, + channelId: broadcasterId, providers: configs.emoteSettings.providers, size: configs.emoteSettings.size, }); diff --git a/widgets/vertical/scripts/tasklist-view.js b/widgets/vertical/scripts/tasklist-view.js index ed5be9a..70ab5d5 100644 --- a/widgets/vertical/scripts/tasklist-view.js +++ b/widgets/vertical/scripts/tasklist-view.js @@ -339,7 +339,7 @@ class TaskList { let color = section.color ?? localStorage.getItem(`${section.id}-color`); if ( - configs.twitchSettings.autoUserColor && + configs.userColorSettings.autoUserColor && color != undefined && color != "undefined" && color != null @@ -374,7 +374,9 @@ class TaskList { } if (el.dataset.text !== task.text) { el.dataset.text = task.text; - const textEl = el.querySelector(".task-text") || el.querySelector("span:last-child"); + const textEl = + el.querySelector(".task-text") || + el.querySelector("span:last-child"); textEl.innerHTML = this.#parseTaskText(task.text); } el.querySelector(".task-number").textContent = `${i + 1}.`;