Filter numbers from chat with 7TV extension enabled.
// ==UserScript==
// @name 7TV Chaos Mod Filter
// @version 0.4
// @license MIT
// @description Filter numbers from chat with 7TV extension enabled.
// @author declider
// @match https://www.twitch.tv/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=twitch.tv
// @run-at document-end
// @namespace https://greasyfork.org/users/1257876
// ==/UserScript==
/* eslint-disable no-multi-spaces */
const numbers = "12345678" /* Регулярка работала криво */
const invisible = new RegExp(/[\uD800-\uDFFF]/, "gi")
let chat
function callback(mutationlist, observer) {
for (const mutation of mutationlist) {
if (mutation.type != "childList") { continue }
let msg = mutation.addedNodes[0]
if ( !msg ) { continue }
let span = msg.querySelector("span.text-token")
if ( !span ) { continue }
let text = msg.querySelector("span.text-token").innerText
let children = msg.querySelector(".seventv-chat-message-body").childElementCount
text = text.replaceAll(invisible, "").trim();
if (text.length == 1 && numbers.includes(text) && children < 2) {
chat.removeChild(msg)
}
}
}
let readyChecker = setInterval(() => {
const observer = new MutationObserver(callback)
console.log("Попытка получить чат...")
chat = document.querySelector("main.seventv-chat-list")
observer.observe(chat, {
childList: true
})
clearInterval(readyChecker)
console.log("Чат найден, фильтр включён!")
}, 1000)