Files
browser-scripts/scripts/ttv-obfuscated-names/main.ts
T
2026-04-18 23:44:01 -05:00

61 lines
1.5 KiB
TypeScript

import { loadAdditionalUserNames, loadChatMessage } from './dom'
const OBSERVER_RATE_LIMIT = 1
let observerLastRun: number = 0
function observerCallback() {
if (Date.now() - observerLastRun < OBSERVER_RATE_LIMIT) {
return
}
observerLastRun = Date.now()
const chatbox = document.querySelector<HTMLDivElement>(
'.chat-scrollable-area__message-container'
)
const chatboxMessages = Array.from(chatbox?.children ?? [])
for (const chatboxMessage of chatboxMessages) {
// set flag on message
if (chatboxMessage.classList.contains('obf-loaded')) {
continue
}
loadChatMessage(chatboxMessage)
loadAdditionalUserNames(chatboxMessage)
}
}
// attach observer
const observer = new MutationObserver(observerCallback)
observer.observe(document, { attributes: true, childList: true, subtree: true })
// attach styles
const styleAddition = document.createElement('style')
styleAddition.innerHTML = `
.chat-line__message--badges {
display: none;
}
.ismod .chat-line__message--badges {
display: inline;
}
.ismod .chat-line__message--badges > span {
display: none;
}
.ismod .chat-line__message--badges > span[data-badge="moderator"],
.ismod .chat-line__message--badges > span[data-badge="broadcaster"] {
display: inline-block;
}
.seventv-paint {
background-image: none !important;
}
img.obf-image {
vertical-align: middle;
margin: -0.5rem 0;
height: 1.8rem;
}
`
document.head.appendChild(styleAddition)