建E网黑名单

2024/5/22 10:00:35

目前为 2024-05-22 提交的版本。查看 最新版本

// ==UserScript==
// @name        建E网黑名单
// @namespace   Violentmonkey Scripts
// @match       https://www.justeasy.cn/3dmodels/search*
// @grant       none
// @version     0.0.1
// @author      YeSilin
// @license     GPL-3.0-or-later
// @description 2024/5/22 10:00:35
// @run-at      document-end
// @grant       GM_addStyle
// @grant       GM_setValue
// @grant       GM_getValue
// ==/UserScript==

(function () {
    'use strict';

    console.log("黑名单开始执行")

    // 获取黑名单列表,暂时手动添加
    // let blacklist = GM_getValue("blacklist")
    let blacklist = ['eXY4WmV1cjB1ajF4bzBXNFFTR2hjZz09',
        'K2dYd1hTekNEdlZKcjVDVE1WVkxmUT09',
        'eVJ3cy9IaUF4TkhjT2pHVklXUjdzdz09',
        'U0FFSHFtYTUyOTc5RDd3NlQ2MDVGQT09',
        'Sk9qQ3kreG1wVU1Ic3RaVVprOXhCdz09',
        'YzNVTUx0T2Mwa0JVTlFCNk1rQWRTQT09']

    // 计算一下本次搜索拦截了多少个
    let conust = 0

    // 每个元素需要执行的回调函数
    function eachHandler(element) {
        let href = element.querySelector("div.userInfo_footer > div.userInfo_info > a").href
        // 去除后缀 .html
        href = href.substring(0, href.lastIndexOf("."))
        // 去掉多余前缀
        let arr = href.split('/')
        href = arr[arr.length - 1]

        // 黑名单列表是否包含
        if (blacklist.includes(href)) {
            conust++
            const name = element.querySelector("div.userInfo_footer > div.userInfo_info > a > div.name").innerText
            // console.log("找到了一个黑名单用户:"  element.querySelector("div.userInfo_footer > div.userInfo_info > a > div.name").innerText + " " + href)
            console.log(`${conust} 黑名单:[${href}] ${name}`)
            // 直接删除
            element.remove()
        }
    }



    // 当观察到变动时执行的回调函数
    function observerHandler(mutationsList, observer) {
        // 元素变化
        // console.log("页面变化了重新执行")
        // console.log(mutationsList)

        mutationsList[0].addedNodes.forEach(eachHandler)

    }

    // 定时器回调函数
    function timerHandler() {
        // 选择要观察的元素列表
        const targetNode = document.querySelector("#grid")
        // console.log("开始寻找父元素")
        // console.log(targetNode)
        // 如果找到元素就清除定时器
        if (targetNode) {
            // console.log("找到了父元素")
            clearInterval(intervalId) // 清除定时器

            const observerOptions = {
                childList: true, // 观察目标子节点的变化,是否有添加或者删除
                // attributes: true, // 观察属性变动
                // subtree: true, // 观察后代节点,默认为 false
            }
            // 实例化一个观察器
            let observer = new MutationObserver(observerHandler)
            // 开始观察目标节点
            observer.observe(targetNode, observerOptions);
        }
    }


    // 设置一个定时器
    const intervalId = setInterval(timerHandler, 1000)
    // 立刻执行一次
    timerHandler()

})()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址