From 27ae0dd0ab47f781fe6e5c932d33f983973a5885 Mon Sep 17 00:00:00 2001 From: zomo Date: Sun, 19 Apr 2026 20:11:00 -0500 Subject: [PATCH] added raid message support --- dist/ttv-obfuscated-names.user.js | 22 +++++++++--- scripts/ttv-obfuscated-names/dom.ts | 40 ++++++++++++++++------ scripts/ttv-obfuscated-names/obfuscator.ts | 4 +-- scripts/ttv-obfuscated-names/todo.md | 21 ------------ scripts/ttv-obfuscated-names/util.ts | 2 +- 5 files changed, 51 insertions(+), 38 deletions(-) diff --git a/dist/ttv-obfuscated-names.user.js b/dist/ttv-obfuscated-names.user.js index 7db1f14..1a170a1 100644 --- a/dist/ttv-obfuscated-names.user.js +++ b/dist/ttv-obfuscated-names.user.js @@ -224,10 +224,7 @@ function loadChatMessage(chatboxMessage) { function loadReplyLine(chatboxMessage) { const replyline = chatboxMessage.querySelector('.ffz--fix-reply-line') const replyUsername = replyline?.querySelector('p > span:nth-child(1)') - if (!replyUsername) { - return - } - if (replyUsername.querySelector('.obf-name')) { + if (!replyUsername || replyUsername.querySelector('.obf-name')) { return } const chatMessage = { @@ -260,6 +257,22 @@ function loadMessageMentions(chatboxMessage) { eachMention(messageMention) } } +function loadRaidMessage(chatboxMessage) { + const usernamebox = chatboxMessage.querySelector( + '[data-test-selector="user-notice-line"] div > strong:nth-child(1)' + ) + if (!usernamebox || usernamebox.querySelector('.obf-name')) { + return + } + const chatMessage = { + username: usernamebox.textContent, + isMod: false, + } + const newChatMessage = obfuscator(chatMessage) + if (newChatMessage !== null) { + setUsernameDetails(newChatMessage, usernamebox) + } +} function loadAdditionalUserNames(chatboxMessage) { const chatterNames = chatboxMessage.querySelectorAll('.chatter-name') for (const chatterName of chatterNames) { @@ -337,6 +350,7 @@ function eachMutationTarget(record, target) { } loadChatMessage(chatboxMessage) loadAdditionalUserNames(chatboxMessage) + loadRaidMessage(chatboxMessage) } } diff --git a/scripts/ttv-obfuscated-names/dom.ts b/scripts/ttv-obfuscated-names/dom.ts index 36d3683..f086cfc 100644 --- a/scripts/ttv-obfuscated-names/dom.ts +++ b/scripts/ttv-obfuscated-names/dom.ts @@ -5,7 +5,7 @@ import { nameImages, usernameExtraSuffix, } from './options' -import { ChatMessage, elementTreeFind, innermostElement } from './util' +import { NameDetails, elementTreeFind, innermostElement } from './util' function loadChatMessage(chatboxMessage: Element) { // only chat messages @@ -58,7 +58,7 @@ function loadChatMessage(chatboxMessage: Element) { } // combine details into object - const chatMessage: ChatMessage = { + const chatMessage: NameDetails = { username: chatboxUserInner.textContent, isMod, } @@ -80,16 +80,12 @@ function loadReplyLine(chatboxMessage: Element) { 'p > span:nth-child(1)' ) - if (!replyUsername) { - return - } - // already applied username - if (replyUsername.querySelector('.obf-name')) { + if (!replyUsername || replyUsername.querySelector('.obf-name')) { return } - const chatMessage: ChatMessage = { + const chatMessage: NameDetails = { username: replyUsername.textContent.replace(/^@/, ''), isMod: false, } @@ -109,7 +105,7 @@ function loadMessageMentions(chatboxMessage: Element) { return } - const chatMessage: ChatMessage = { + const chatMessage: NameDetails = { username: messageMention.textContent.replace(/^@/, ''), isMod: false, } @@ -131,6 +127,29 @@ function loadMessageMentions(chatboxMessage: Element) { } } +function loadRaidMessage(chatboxMessage: Element) { + const usernamebox = chatboxMessage.querySelector( + '[data-test-selector="user-notice-line"] div > strong:nth-child(1)' + ) + + // already applied username + if (!usernamebox || usernamebox.querySelector('.obf-name')) { + return + } + + const chatMessage: NameDetails = { + username: usernamebox.textContent, + isMod: false, + } + + // run main script (process chatMessage), return new ChatMessage + const newChatMessage = obfuscator(chatMessage) + + if (newChatMessage !== null) { + setUsernameDetails(newChatMessage, usernamebox) + } +} + function loadAdditionalUserNames(chatboxMessage: Element) { // look for additional chat member names const chatterNames = @@ -152,7 +171,7 @@ function loadAdditionalUserNames(chatboxMessage: Element) { } // combine details into object - const chatMessage: ChatMessage = { + const chatMessage: NameDetails = { username, isMod: false, } @@ -234,5 +253,6 @@ function eachMutationTarget(record: MutationRecord, target: HTMLElement) { } loadChatMessage(chatboxMessage) loadAdditionalUserNames(chatboxMessage) + loadRaidMessage(chatboxMessage) } } diff --git a/scripts/ttv-obfuscated-names/obfuscator.ts b/scripts/ttv-obfuscated-names/obfuscator.ts index 0778426..1a615f5 100644 --- a/scripts/ttv-obfuscated-names/obfuscator.ts +++ b/scripts/ttv-obfuscated-names/obfuscator.ts @@ -1,9 +1,9 @@ import { DEBUG, NameConfigInstance, ignoreMod } from './options' import { getRandomName, getStoredUser, setStoredUser } from './storage' -import { ChatMessage } from './util' +import { NameDetails } from './util' export function obfuscator( - chatMessage: ChatMessage + chatMessage: NameDetails ): NameConfigInstance | null { if (ignoreMod && chatMessage.isMod) { return null diff --git a/scripts/ttv-obfuscated-names/todo.md b/scripts/ttv-obfuscated-names/todo.md index f80c09f..bb9302a 100644 --- a/scripts/ttv-obfuscated-names/todo.md +++ b/scripts/ttv-obfuscated-names/todo.md @@ -44,24 +44,3 @@ watch streaks ``` - -raid message - -```html -
-
-
-
-
-
-
-
thezomo is raiding with a party of - 12.
-
-
-
-
-
-
-``` diff --git a/scripts/ttv-obfuscated-names/util.ts b/scripts/ttv-obfuscated-names/util.ts index 8860bcc..c3600b7 100644 --- a/scripts/ttv-obfuscated-names/util.ts +++ b/scripts/ttv-obfuscated-names/util.ts @@ -1,4 +1,4 @@ -export interface ChatMessage { +export interface NameDetails { username: string isMod: boolean }