diff --git a/src/scripts/content.js b/src/scripts/content.js new file mode 100644 index 0000000..4f0785d --- /dev/null +++ b/src/scripts/content.js @@ -0,0 +1,45 @@ +if (!!window.chrome) { + const currentUrl = document.location.hostname; + + (async () => { + const observer = new MutationObserver((mutations, observer) => { + mutations.forEach(async () => { + observer.disconnect(); + await remove(); + observe(); + }); + }); + + const observe = () => { + observer.observe(document.body, { + attributes: true, + childList: true, + }); + }; + + const remove = async () => { + const filtersUrl = chrome.runtime.getURL("filters/index.txt"); + const text = await fetch(filtersUrl).then((res) => res.text()); + const filters = text.split("\n"); + + filters.forEach((item) => { + const [url, match] = item.split("##"); + + if (url === "" || currentUrl.includes(url)) { + const element = document.querySelector(match); + + if ( + element && + element.tagName !== "BODY" && + element.tagName !== "HTML" + ) { + element.remove(); + } + } + }); + }; + + await remove(); + observe(); + })(); +}