Sleazy Fork is available in English.

baraag_Auto_click_filter

自动点开敏感内容, 带黑名单的强大功能

// ==UserScript==
// @license MIT
// @name        baraag_Auto_click_filter
// @namespace    http://tampermonkey.net/
// @version      20240727
// @description  自动点开敏感内容, 带黑名单的强大功能
// @author       You
// @match        https://*.baraag.net/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=baraag.net
// @grant    GM_setValue
// @grant    GM_getValue
// @grant    GM_registerMenuCommand
// @grant    GM_unregisterMenuCommand
// ==/UserScript==
function $Q(selector) {
  let ele = document.querySelector(selector);
  if (ele == null) {
    return { style: {}, remove() {} };
  } else {
    return ele;
  }
}

function $QALL(query) {
  return document.querySelectorAll(query);
}


const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))

 // 定义一个函数来执行点击事件
function simulateClick() {
    // 选择所有类名为spoiler-button__overlay的元素
    let spoilerButtons = Array.from($QALL('.spoiler-button__overlay'));

    // 循环遍历每个元素并触发点击事件
    spoilerButtons.forEach(async function(button) {
        if (!button.classList.contains("over"))
        {
             button.click(); // 触发点击事件
            button.classList.add("over");
            await sleep(500);
        }
    });
    // 获取初始元素
    let elements = Array.from($QALL(".display-name__account"));

    let filters = GM_getValue(filters_name) ?? [];
    console.log(filters);
    elements.forEach( function(element){
        // 判断是否在黑名单中
        if (filters.indexOf(element.innerText) > -1 )
        {
            // 向上遍历直到找到 <article> 元素
            while (element !== null && element.tagName !== "ARTICLE") {
                element = element.parentNode;
            }

            // 如果找到了 <article> 元素,则删除它
            if (element !== null && element.tagName === "ARTICLE") {
                //element.remove();
                element.style.visibility = "hidden";
            }
        } // if (ele......)
    }); // foreach
}
let add_name = "添加黑名单";
let remove_name = "移除黑名单";
let check_name = "检查";
let filters_name = "filters";

let id_add=GM_registerMenuCommand (add_name ,AddFilter);
let id_remove=GM_registerMenuCommand (remove_name,RemoveFilter);
let id_check=GM_registerMenuCommand (check_name,CheckFilter);

function AddFilter(){
   let filter = prompt("请输入黑名单, 如@TheDispenser69");
   let arr = GM_getValue(filters_name);
    if (Array.isArray(arr)) {
        // 如果是数组,在末尾插入元素filter
        arr.push(filter);
    } else {
        // 如果不是数组,将其变为空数组,再插入元素1
        arr = [];
        arr.push(filter);
    }
   GM_setValue(filters_name,arr)
}

function RemoveFilter(){
   let filter = prompt("请输出要移除的黑名单, 如@TheDispenser69");
   let arr = GM_getValue(filters_name);
    if (Array.isArray(arr)) {
        // 如果是数组,删除元素
       arr = arr.filter(item => item !== filter);
    } else {
        // 如果不是数组,将其变为空数组
       arr = [];
    }
   GM_setValue(filters_name,arr)
}

function CheckFilter(){
   let arr = GM_getValue(filters_name);
    if (!Array.isArray(arr)) {
        // 如果不是数组,将其变为空数组
       arr = [];
    }
    alert(arr);
   GM_setValue(filters_name,arr)
}

(function() {
    'use strict';
    // Your code here...
    setInterval(function () {
        simulateClick()
    }, 700);
})();