Sleazy Fork is available in English.

baraag_Auto_click_filter

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

  1. // ==UserScript==
  2. // @license MIT
  3. // @name baraag_Auto_click_filter
  4. // @namespace http://tampermonkey.net/
  5. // @version 20240727
  6. // @description 自动点开敏感内容, 带黑名单的强大功能
  7. // @author You
  8. // @match https://*.baraag.net/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=baraag.net
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // @grant GM_registerMenuCommand
  13. // @grant GM_unregisterMenuCommand
  14. // ==/UserScript==
  15. function $Q(selector) {
  16. let ele = document.querySelector(selector);
  17. if (ele == null) {
  18. return { style: {}, remove() {} };
  19. } else {
  20. return ele;
  21. }
  22. }
  23.  
  24. function $QALL(query) {
  25. return document.querySelectorAll(query);
  26. }
  27.  
  28.  
  29. const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
  30.  
  31. // 定义一个函数来执行点击事件
  32. function simulateClick() {
  33. // 选择所有类名为spoiler-button__overlay的元素
  34. let spoilerButtons = Array.from($QALL('.spoiler-button__overlay'));
  35.  
  36. // 循环遍历每个元素并触发点击事件
  37. spoilerButtons.forEach(async function(button) {
  38. if (!button.classList.contains("over"))
  39. {
  40. button.click(); // 触发点击事件
  41. button.classList.add("over");
  42. await sleep(500);
  43. }
  44. });
  45. // 获取初始元素
  46. let elements = Array.from($QALL(".display-name__account"));
  47.  
  48. let filters = GM_getValue(filters_name) ?? [];
  49. console.log(filters);
  50. elements.forEach( function(element){
  51. // 判断是否在黑名单中
  52. if (filters.indexOf(element.innerText) > -1 )
  53. {
  54. // 向上遍历直到找到 <article> 元素
  55. while (element !== null && element.tagName !== "ARTICLE") {
  56. element = element.parentNode;
  57. }
  58.  
  59. // 如果找到了 <article> 元素,则删除它
  60. if (element !== null && element.tagName === "ARTICLE") {
  61. //element.remove();
  62. element.style.visibility = "hidden";
  63. }
  64. } // if (ele......)
  65. }); // foreach
  66. }
  67. let add_name = "添加黑名单";
  68. let remove_name = "移除黑名单";
  69. let check_name = "检查";
  70. let filters_name = "filters";
  71.  
  72. let id_add=GM_registerMenuCommand (add_name ,AddFilter);
  73. let id_remove=GM_registerMenuCommand (remove_name,RemoveFilter);
  74. let id_check=GM_registerMenuCommand (check_name,CheckFilter);
  75.  
  76. function AddFilter(){
  77. let filter = prompt("请输入黑名单, 如@TheDispenser69");
  78. let arr = GM_getValue(filters_name);
  79. if (Array.isArray(arr)) {
  80. // 如果是数组,在末尾插入元素filter
  81. arr.push(filter);
  82. } else {
  83. // 如果不是数组,将其变为空数组,再插入元素1
  84. arr = [];
  85. arr.push(filter);
  86. }
  87. GM_setValue(filters_name,arr)
  88. }
  89.  
  90. function RemoveFilter(){
  91. let filter = prompt("请输出要移除的黑名单, 如@TheDispenser69");
  92. let arr = GM_getValue(filters_name);
  93. if (Array.isArray(arr)) {
  94. // 如果是数组,删除元素
  95. arr = arr.filter(item => item !== filter);
  96. } else {
  97. // 如果不是数组,将其变为空数组
  98. arr = [];
  99. }
  100. GM_setValue(filters_name,arr)
  101. }
  102.  
  103. function CheckFilter(){
  104. let arr = GM_getValue(filters_name);
  105. if (!Array.isArray(arr)) {
  106. // 如果不是数组,将其变为空数组
  107. arr = [];
  108. }
  109. alert(arr);
  110. GM_setValue(filters_name,arr)
  111. }
  112.  
  113. (function() {
  114. 'use strict';
  115. // Your code here...
  116. setInterval(function () {
  117. simulateClick()
  118. }, 700);
  119. })();