added emote support

This commit is contained in:
liyunze 2026-07-01 17:19:37 +10:00
parent e6c58a1ec7
commit a4d75c930f
11 changed files with 66 additions and 27 deletions

View file

@ -23,8 +23,6 @@ const configs = (function () {
const emoteSettings = { const emoteSettings = {
enabled: true, enabled: true,
channelName: "rythondev",
channelId: "248474026",
providers: ["7tv", "bttv", "ffz"], providers: ["7tv", "bttv", "ffz"],
size: "1x", size: "1x",
cacheHours: 24, cacheHours: 24,

View file

@ -13,8 +13,8 @@ class EmoteManager {
#patternSize = 0; #patternSize = 0;
constructor(config = {}) { constructor(config = {}) {
this.#channelName = config.channelName || ""; this.#channelName = config.channelName;
this.#channelId = config.channelId || ""; this.#channelId = config.channelId;
if (config.providers) this.#providers = config.providers; if (config.providers) this.#providers = config.providers;
if (config.size) this.#size = config.size; if (config.size) this.#size = config.size;
} }

View file

@ -135,10 +135,24 @@ async function refresh() {
async function onConnect() { async function onConnect() {
taskList = new TaskList(".task-panel"); 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({ window.emoteManager = new EmoteManager({
channelName: configs.emoteSettings.channelName, channelName: broadcasterName,
channelId: configs.emoteSettings.channelId, channelId: broadcasterId,
providers: configs.emoteSettings.providers, providers: configs.emoteSettings.providers,
size: configs.emoteSettings.size, size: configs.emoteSettings.size,
}); });

View file

@ -339,7 +339,7 @@ class TaskList {
let color = let color =
section.color ?? localStorage.getItem(`${section.id}-color`); section.color ?? localStorage.getItem(`${section.id}-color`);
if ( if (
configs.twitchSettings.autoUserColor && configs.userColorSettings.autoUserColor &&
color != undefined && color != undefined &&
color != "undefined" && color != "undefined" &&
color != null color != null
@ -374,7 +374,9 @@ class TaskList {
} }
if (el.dataset.text !== task.text) { if (el.dataset.text !== task.text) {
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); textEl.innerHTML = this.#parseTaskText(task.text);
} }
el.querySelector(".task-number").textContent = `${i + 1}.`; el.querySelector(".task-number").textContent = `${i + 1}.`;

View file

@ -25,8 +25,6 @@ const configs = (function () {
const emoteSettings = { const emoteSettings = {
enabled: true, enabled: true,
channelName: "rythondev",
channelId: "248474026",
providers: ["7tv", "bttv", "ffz"], providers: ["7tv", "bttv", "ffz"],
size: "1x", size: "1x",
cacheHours: 24, cacheHours: 24,
@ -36,8 +34,7 @@ const configs = (function () {
username, username,
streamerBotSettings, streamerBotSettings,
commands, commands,
twitchSettings, userColorSettings,
kickSettings,
emoteSettings, emoteSettings,
}; };
})(); })();

View file

@ -13,8 +13,8 @@ class EmoteManager {
#patternSize = 0; #patternSize = 0;
constructor(config = {}) { constructor(config = {}) {
this.#channelName = config.channelName || ""; this.#channelName = config.channelName;
this.#channelId = config.channelId || ""; this.#channelId = config.channelId;
if (config.providers) this.#providers = config.providers; if (config.providers) this.#providers = config.providers;
if (config.size) this.#size = config.size; if (config.size) this.#size = config.size;
} }

View file

@ -136,10 +136,24 @@ async function refresh() {
async function onConnect() { async function onConnect() {
taskList = new TaskList(".task-panel"); 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({ window.emoteManager = new EmoteManager({
channelName: configs.emoteSettings.channelName, channelName: broadcasterName,
channelId: configs.emoteSettings.channelId, channelId: broadcasterId,
providers: configs.emoteSettings.providers, providers: configs.emoteSettings.providers,
size: configs.emoteSettings.size, size: configs.emoteSettings.size,
}); });

View file

@ -316,7 +316,7 @@ class TaskList {
let color = let color =
section.color ?? localStorage.getItem(`${section.id}-color`); section.color ?? localStorage.getItem(`${section.id}-color`);
if ( if (
configs.twitchSettings.autoUserColor && configs.userColorSettings.autoUserColor &&
color != undefined && color != undefined &&
color != "undefined" && color != "undefined" &&
color != null color != null
@ -351,7 +351,9 @@ class TaskList {
} }
if (el.dataset.text !== task.text) { if (el.dataset.text !== task.text) {
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); textEl.innerHTML = this.#parseTaskText(task.text);
} }
el.querySelector(".task-number").textContent = `${i + 1}.`; el.querySelector(".task-number").textContent = `${i + 1}.`;

View file

@ -23,8 +23,6 @@ const configs = (function () {
const emoteSettings = { const emoteSettings = {
enabled: true, enabled: true,
channelName: "rythondev",
channelId: "248474026",
providers: ["7tv", "bttv", "ffz"], providers: ["7tv", "bttv", "ffz"],
size: "1x", size: "1x",
cacheHours: 24, cacheHours: 24,

View file

@ -135,10 +135,22 @@ async function refresh() {
async function onConnect() { async function onConnect() {
taskList = new TaskList(".task-panel"); 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({ window.emoteManager = new EmoteManager({
channelName: configs.emoteSettings.channelName, channelName: broadcasterName,
channelId: configs.emoteSettings.channelId, channelId: broadcasterId,
providers: configs.emoteSettings.providers, providers: configs.emoteSettings.providers,
size: configs.emoteSettings.size, size: configs.emoteSettings.size,
}); });

View file

@ -339,7 +339,7 @@ class TaskList {
let color = let color =
section.color ?? localStorage.getItem(`${section.id}-color`); section.color ?? localStorage.getItem(`${section.id}-color`);
if ( if (
configs.twitchSettings.autoUserColor && configs.userColorSettings.autoUserColor &&
color != undefined && color != undefined &&
color != "undefined" && color != "undefined" &&
color != null color != null
@ -374,7 +374,9 @@ class TaskList {
} }
if (el.dataset.text !== task.text) { if (el.dataset.text !== task.text) {
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); textEl.innerHTML = this.#parseTaskText(task.text);
} }
el.querySelector(".task-number").textContent = `${i + 1}.`; el.querySelector(".task-number").textContent = `${i + 1}.`;