您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
MW广告拦截
// ==UserScript== // @name [buyi] MW广告拦截 // @namespace buyi // @version 1.0.1 // @description MW广告拦截 // @author buyi // @match *://*/* // @icon data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wgARCAAgACADAREAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAABgcJCAX/xAAZAQACAwEAAAAAAAAAAAAAAAACBQEDBAD/2gAMAwEAAhADEAAAAKox09suonov3EyW8eJlkoet0SoK5QLYeyQtZaSAzG+oUkVUecgnmJkY/wD/xAArEAABBAIBAwIEBwAAAAAAAAABAgMEBQYREgAHIQgyExQiQRYjMTNhcZL/2gAIAQEAAT8A/Qfx16qPVNn9n3nd7VYO/ZQKTH3A3NagLLT9g+ByWXXR7GUAgEf669LPfDJIWS10W7v7OfjWYzDGrkWDqnVsSeXA/DKySEcykbB4nn0NdZS3ZO0UlirSlTro4LBdU0S2feEqAJSojYB14J312SnY1A78X+HX2Mxp9c3Kky48uS1zkQnWljiHSCQpBGwdE7Urq1po+R9z4U3FKG0YRVWDaoLiJX7k08EpZYjAkMsAhK1khO/JA2dhgq4Dn7gBv+/v1MzdJVkdLLlLkEuSURULSWikp0kthST9SdEqGwD4IO+se7MPzvVo9axWJq66/rX7OUtDgQWlIAQ6gJ3pQLgbA2D09h6aZxOYUTsBqM0pMpaUOH5lggJC1ggbUCEaUkkaBUR9wTbZDN7hU7cKyDFY7XF5xjjsPnkdkedA64kHz467zU7+KtyMpoWQs2khBkoUdBLyUkBST9gsDRB8A6PVIxUHJIfcKVfR6idJhOQ5kF+SlXNkLUtooJIKFpUSokDyDojwCMkvKyNi70urtYVlZKKPhwoz4W4tkn8xR47I+gqJ2B4BJ67Lz7TJ3vxBbOJcciwUREKSkgJHI6HnzvQ2T1//xAAeEQACAgICAwAAAAAAAAAAAAABAgADBBESIRMUQf/aAAgBAgEBPwDQEyLQomPdswHcIJmYpmIkUaEV+exL6zYCkpx2pHKNa/mVRMpvX7ETvTxw4Gphlrbix+T/xAAfEQACAgICAwEAAAAAAAAAAAABAgADBDESExEhQQX/2gAIAQMBAT8AGpioxMyKVI5zcT1Pzip3M26pR1qJo+pxmNf0NyGpflJc3H7FqToZjuYdQywUjL1+ajKuJbz9maq00BRsz//Z // @grant unsafeWindow // @license MIT // ==/UserScript== (function () { 'use strict'; const tool = { print(level, msg, ...args) { const now = new Date() const year = now.getFullYear() const month = (now.getMonth() + 1 < 10 ? "0" : "") + (now.getMonth() + 1) const day = (now.getDate() < 10 ? "0" : "") + now.getDate() const hour = (now.getHours() < 10 ? "0" : "") + now.getHours() const minute = (now.getMinutes() < 10 ? "0" : "") + now.getMinutes() const second = (now.getSeconds() < 10 ? "0" : "") + now.getSeconds() const timenow = "[" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second + "]" console[level]("[🚀 ~ MW广告拦截 🎉]" + timenow + " > ", msg, ...args) } } const log = { log(msg, ...args) { tool.print("log", msg, ...args) }, info(msg, ...args) { tool.print("info", msg, ...args) }, warn(msg, ...args) { tool.print("warn", msg, ...args) }, error(msg, ...args) { tool.print("error", msg, ...args) }, debug(msg, ...args) { tool.print("debug", msg, ...args) } } if (!unsafeWindow.$ || !unsafeWindow.jQuery || !unsafeWindow.jQuery.fn.jquery) { log.log("获取不到$,网站匹配失败 @buyi") return } // 使用类名匹配网站 let classNames = ['main-content', 'ad-area'] if (classNames.filter(i => $(`.${i}`).length === 0).length !== 0) { log.log("未找到广告元素,匹配失败 @buyi") return } log.log("启动中 @buyi") // 关闭全局透明区域广告。在cookie中设置点击次数无限大避免创建点击区域,第一次打开网站时还未创建cookie,所以执行关闭点击区域 $.cookie("popunder-capping", '100000000000000', { expires: 365, path: '/' }) $("#creativeDisplayed-adsterra").remove(); log.log("关闭全局透明区域广告 @buyi") // 删除所有广告 unsafeWindow.$(".ad-area").each(function () { let ad_group_name = $(this).attr("data-group"); let current_url = new URL(window.location.href); let current_uri = current_url.pathname.split("/")[1]; $.cookie("ad_close_" + ad_group_name + "_" + current_uri, '1') $(this).hide(); }); log.log("关闭所有广告 @buyi") // 重写覆盖广告渲染函数 unsafeWindow.rsad = () => { log.log("重写 rsad 函数成功! @buyi") unsafeWindow.rsad = () => { } } // 递归关闭可关闭广告 var closeAD = () => { unsafeWindow.$('.ad-area-close').click() setTimeout(closeAD, 3000) } closeAD() // 拦截alert var oldAlert = unsafeWindow.alert; const blockAlertText = [ '请关闭阻挡广告插件并使用官方推荐浏览器 Chrome , Edge , Safari' ] unsafeWindow.alert = function (text) { log.log("Alert input text: " + text); if (blockAlertText.filter((item) => text.indexOf(item) !== -1).length > 0) { log.log("blocked alert text:", text) return; } oldAlert(text); } // 网站提示拦截成功 let $toast = $(`<div style=' position: fixed; top: 8px; left: 8px; background:#07c160; color: white; height: 28px; line-height: 28px; padding: 0 16px; border-radius: 8px; z-index: 9999999999999999;' >MW拦截成功!</div>`) $toast.on('click', () => { $toast.hide() }) $(document).on('click', () => { $toast.hide() }) $toast.appendTo("body") // setTimeout(()=>{ // $toast.hide() // }, 1000) // 预加载图片 if ($('.img-content').length === 0) { log.log('当前页面不是章节页面, 忽略') return } log.log('开始预加载图片') $(document).ready(() => { $(function () { const e = '<span class="dl-overlay-mw">MW广告拦截</span>', t = (e, t, r) => { e.css("strokeDasharray", `${t}100`), e.find(".number span").text(Math.round(t)), null != r && e.find("h2").html(r); }; webpMachine.webpSupport.then((r) => { var n = !1, s = "my"; let a, i, o = "ret"; (s += "2ecret"), (s += "782ec"), (s += "ret"); var c = 300; async function l(e, r, n) { let s = $(".img-hosts").attr("data-img-hosts"); if (s) { s = (s = window.atob(s)).split(","); for (let t = 0; t < s.length; t++) if (t >= n) { let r = new URL(e); e = e.replace(r.hostname, s[t]); break; } t($(r).prev(), 0, "加載中"), await p(e, r, n); } } $("img.lazy_img").each(function (e) { $(this).attr("data-original", "/static/images/imagecover.png"), $(this).on("load", function () { ($(this).attr("src").indexOf("blob:") > -1 || $(this).attr("src").indexOf("base64") > -1) && ($(this) .css("width", "auto") .css("display", "flex") .css("min-height", "0px"), window.URL.revokeObjectURL($(this).attr("src"))); }); }); try { d(); } catch (e) { } function d() { $("img.lazy_img").each(function (t) { $(e).insertBefore($(this)), $(this).outerHeight() > c && (c = $(this).outerHeight()), $(this).prev().css("height", c); let r = $(this)[0], n = r.getAttribute("src"); n.indexOf("blob:") < 0 && n.indexOf("base64") && n.indexOf("/book/content/") < 0 && setTimeout(() => { p(r.getAttribute("data-r-src"), r) }, t * 500); }); } async function p(e, r, n = 0) { let a = new XMLHttpRequest(); a.open("GET", e, !0), a.addEventListener("progress", function (e) { let n = (e.loaded / (e.loaded + 6e3)) * 100; t($(r).prev(), n, "加載中"); }), (a.responseType = "arraybuffer"), (a.onerror = async function () { $(r).prev().css("height", "500px"); let t = $(".img-hosts").attr("data-img-hosts"); (t = (t = window.atob(t)).split(",")), n < t.length ? ((n += 1), $(r) .prev() .find(".number") .html("<span>重试中" + n + "</span>"), $(r).prev().find("h2").html(""), await l(e, r, n)) : $(r).prev().hasClass("dl-overlay-mw") && ($(r).prev().addClass("error-img"), $(r).prev().css("strokeDasharray", "100 100"), $(r).prev().find(".number").html("<span>失败</span>"), $(r).prev().find("h2").html(""), "none" == $(r).prev().find(".retry_img>span").css("display") && ($(r).prev().find(".retry_img>span").show(), $(r) .prev() .find(".retry_img>span") .on("click", function () { console.log(n), $(r).prev().removeClass("error-img"), l(e, r, n++); }))); }), (a.onload = async function () { 4 == a.readyState && (200 == a.status ? ((r.src = await g(a.response, s, r)), $(r).prev().hasClass("dl-overlay-mw") && $(r).prev().remove()) : 0 == n && ((n += 1), await p(e, r, n))); }), a.send(); } function f(e) { const t = e.sigBytes, r = e.words, n = new Uint8Array(t); for (var s = 0, a = 0; s != t;) { var i = r[a++]; if (((n[s++] = (4278190080 & i) >>> 24), s == t)) break; if (((n[s++] = (16711680 & i) >>> 16), s == t)) break; if (((n[s++] = (65280 & i) >>> 8), s == t)) break; n[s++] = 255 & i; } return n; } const h = (e) => new Promise((t) => setTimeout(t, e)), v = (e) => { let t = new FileReader(); return ( t.readAsDataURL(e), new Promise((e) => { t.onloadend = () => { e(t.result); }; }) ); }; async function g(e, t, s) { let a = e, i = CryptoJS.enc.Utf8.parse(t), o = CryptoJS.lib.WordArray.create(a), c, l = f( CryptoJS.AES.decrypt( { ciphertext: o, }, i, { iv: i, padding: CryptoJS.pad.Pkcs7, } ) ), d = ""; if (r) { let e = new Blob([l]); d = URL.createObjectURL(e); } else { let e = 0; for (; "" === d && e < 100;) { if ((e++, !n)) { let e; (n = !0), (d = await webpMachine.decode(l)), (n = !1); } "" === d && (await h(300)); } "" == d && console.log($(s).attr("data-sort"), "fail!!"); } return d; } }); }); }) // 预加载图片 =============== end })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址