您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes ads and VPN shilling on Demonoid
- // ==UserScript==
- // @name Demonoid remove clutter
- // @namespace jxq8p6u6r9wtn2f6617i
- // @match https://demonoid.is/*
- // @match https://www.demonoid.is/*
- // @match https://dnoid.pw/*
- // @match https://www.dnoid.pw/*
- // @match https://dnoid.to/*
- // @match https://www.dnoid.to/*
- // @grant none
- // @version 1.2.1
- // @description Removes ads and VPN shilling on Demonoid
- // @run-at document-start
- // @inject-into content
- // @license MIT
- // ==/UserScript==
- (function () {
- "use strict";
- const { HTMLUnknownElement } = window;
- function hide(element, state = true) {
- if (!element) {
- return;
- }
- element.hidden = state;
- if (state) {
- element.style.setProperty("display", "none", "important");
- } else {
- element.style.removeProperty("display");
- }
- }
- function inject(unwrap = (x)=>x, exporter = unwrap) {
- const proxyHandler = new window.Object();
- proxyHandler.apply = exporter(function (write, that, args) {
- if (args[0]?.toLowerCase?.().indexOf?.("<script") === -1) {
- return write.apply(that, args);
- }
- });
- const doc = unwrap(Document.prototype);
- doc.write = new window.Proxy(doc.write, proxyHandler);
- }
- let unsafeDoc = document;
- if (typeof globalThis.XPCNativeWrapper === "function") {
- inject(XPCNativeWrapper.unwrap, (f) => exportFunction(f, window));
- // Why is the Firefox sandbox so weird
- unsafeDoc = XPCNativeWrapper.unwrap(unsafeDoc);
- } else {
- const script = document.createElement("script");
- script.text = `"use strict";(${inject})();`;
- (document.head ?? document.documentElement).prepend(script);
- script.remove();
- }
- hide(document.documentElement);
- const sheet = new CSSStyleSheet();
- sheet.replace("#share-buttons,#downloadbox a:first-of-type,#downloadbox br:first-of-type,#rss_feed_link br,#rss_feed_link2 br,center a[href$='.php'] img[alt='']{display:none!important;}");
- // Copy to unprivileged page scope array or this won't work in Firefox
- unsafeDoc.adoptedStyleSheets = window.Array.from([sheet].concat(document.adoptedStyleSheets));
- window.addEventListener("DOMContentLoaded", () => {
- // Hide big VPN message
- let adElement = document.evaluate(".//*[contains(text(), 'Get VPN')]", document.body, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue;
- while (adElement && !(adElement instanceof HTMLUnknownElement)) {
- adElement = adElement.parentNode;
- }
- if (adElement?.tagName) {
- for (const ad of document.getElementsByTagName(adElement.tagName)) {
- hide(ad);
- }
- }
- // Hide big black whitelist box
- adElement = document.evaluate(".//*[contains(text(), 'Ad-Blocker')]/ancestor-or-self::table", document.body, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue;
- hide(adElement);
- hide(document.body.querySelector("td > hr + span")?.closest("tr")); // Sponsored Links box on torrent pages
- const btcNags = document.body.querySelectorAll("a[href^='bitcoin:']");
- for (const nag of btcNags) {
- hide(nag.closest("span, p, div.block"));
- }
- });
- window.addEventListener("DOMContentLoaded", hide.bind(null, document.documentElement, false));
- })();