bilibili 推广检测

检测视频推广

目前为 2023-01-02 提交的版本。查看 最新版本

// ==UserScript==
// @name         bilibili 推广检测
// @namespace    http://tampermonkey.net/
// @version      0.1.0
// @description  检测视频推广
// @author       share121
// @match        https://www.bilibili.com/video/*
// @icon         https://www.bilibili.com/favicon.ico
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    "use strict";
    let tmp = setInterval(() => {
        document.querySelectorAll("a").forEach((e) => {
            for (let [key, value] of Object.entries([
                /taobao\.com/,
                /tmall\.com/,
                /jd\.com/,
                /maigoo\.com/,
                /1688\.com/,
                /xiaohongshu\.com/,
                /meituan\.com/,
                /amazon\.cn/,
                /dianping\.com/,
                /gome\.com\.cn/,
                /pinduoduo\.com/,
                /dangdang\.com/,
                /vmall\.com/,
                /suning\.com/,
                /vip\.com/,
                /you\.163\.com/,
                /xiaomiyoupin\.com/,
            ])) {
                if (e.getAttribute("data-url")?.match(value)) {
                    clearInterval(tmp);
                    let tishi = document.createRange()
                        .createContextualFragment(`<div style="border: 1px solid var(--line_light);border-radius: 6px;background-color:rgb(255, 255, 255);position: fixed;bottom: 50px;right: 50px;z-index: 10000;padding: 20px;box-shadow: 0px 5px 60px rgba(0,0,0,0.2);" data-darkreader-inline-bgcolor="">
    <div style="
    padding: 8px;
    display: grid;
    place-content: center;
">
        <p style="
    font-size: 24px;
">此视频暗藏玄机</p>
    </div>
    <div style="
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    padding: 8px;
">
        <button type="button" style="
    border: none;
    padding: 8px;
    border-radius: 6px;
    outline: none;
    cursor: pointer;
    font-size: 14px;
    background-color: rgba(0,0,0,0.03);
    border: 1px solid var(--line_light);
">关闭此视频</button>
        <button type="button" style="
    border: none;
    padding: 8px;
    border-radius: 6px;
    outline: none;
    cursor: pointer;
    font-size: 14px;
    background-color: rgba(0,0,0,0.03);
    border: 1px solid var(--line_light);
">取消</button>
    </div>
</div>`);
                    tishi
                        .querySelectorAll("button")[0]
                        .addEventListener("click", () => {
                            if (navigator.userAgent.indexOf("MSIE") > 0) {
                                if (
                                    navigator.userAgent.indexOf("MSIE 6.0") > 0
                                ) {
                                    window.opener = null;
                                    window.close();
                                } else {
                                    window.open("", "_top");
                                    window.top.close();
                                }
                            } else {
                                window.opener = null;
                                window.open("", "_self");
                                window.close();
                            }
                        });
                    tishi
                        .querySelectorAll("button")[1]
                        .addEventListener("click", function () {
                            this.parentNode.parentNode.remove();
                        });
                    document.body.appendChild(tishi);
                }
            }
        });
    }, 100);
})();