嘟嘟社区

[经验] 【插件】LOC垃圾桶-一键远离政治中心


本帖最后由 Corei7 于 2022-8-13 12:25 编辑

参考自:https://www.52pojie.cn/thread-1058012-1-1.html
备份帖

屏蔽黑名单用户的帖子/评论/点评,代码有点丑,没学过JS

如果实在忍不住要键政,可以点击按钮显示垃圾内容

测试用例们稍后将会在本贴回复,进行测试
let blockList = new Array("苏州思杰马克丁", "小学生", "lbw", "chmood", "比特鼻", "表妹", "HOH");

有人可能会问,你这个for循环,垃圾用户一多会不会卡啊,如果确实黑名单用户太多,说明这个论坛已经不适合你了,早点撤退

效果图


  1. // ==UserScript==
  2. // [url=home.php?mod=space&uid=5839]@name[/url]        LOC垃圾桶
  3. // @namespace   Violentmonkey Scripts
  4. // @match       https://hostloc.com/*
  5. // @grant       none
  6. // @version     1.0
  7. // @author      mjj
  8. // @description 2022/8/12 23:34:55
  9. // ==/UserScript==
  10. (function () {
  11.     ‘use strict’;
  12.     let showContext = "显示垃圾";
  13.     let hideContext = "隐藏垃圾";
  14.     let BUT_NONE = "none";
  15.     let BUT_BLOCK = "block";
  16.     let DIV_PREFIX = "bdiv";
  17.     let DIV_COMMENT_PREFIX = "bdogCommentDiv";
  18.     let x;
  19.   
  20.     // 需要屏蔽的用户名列表
  21.     let blockList = new Array("苏州思杰马克丁", "小学生", "lbw", "chmood", "比特鼻", "表妹", "HOH");
  22.   
  23.    
  24.     // 处理评论
  25.     function handleDiv(x) {
  26.         let divTemp = document.evaluate(‘//table/tbody[tr[1]/td[1]//a[text()="’ + blockList[x] + ‘"]]’, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  27.         if (!divTemp.snapshotLength) {
  28.             return;
  29.         }
  30.         for (let i = 0, c = ""; i < divTemp.snapshotLength; i++) {
  31.             let curDiv = divTemp.snapshotItem(i).firstChild.childNodes[3];
  32.             if (curDiv.childNodes[2] == null || curDiv.childNodes[2].tagName !== ‘DIV’) {
  33.                 continue;
  34.             }
  35.             let id = x + i;
  36.             curDiv.setAttribute("id", DIV_PREFIX + id);
  37.             curDiv.childNodes[2].style.display = BUT_NONE;
  38.             let button = createButton(curDiv, id, DIV_PREFIX);
  39.             button.style.height = "40px";
  40.             button.style.width = "80%";
  41.         }
  42.     }
  43.     // 处理点评
  44.     function handleComment(x) {
  45.         let commentTemp = document.evaluate(‘//table/tbody[tr[1]/td[2]/div[2]//a[text()="’ + blockList[x] + ‘"]]’, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  46.         if (!commentTemp.snapshotLength) {
  47.             return;
  48.         }
  49.         for (let i = 0, c = ""; i < commentTemp.snapshotLength; i++) {
  50.             let curDiv = commentTemp.snapshotItem(i).firstChild.childNodes[3].childNodes[2].childNodes[0].childNodes[3];
  51.             if (!curDiv.hasChildNodes()) {
  52.                 continue;
  53.             }
  54.             let children = curDiv.childNodes;
  55.             for (let j = 0; i < children.length; i++) {
  56.                 let curComment = children[i];
  57.                 if (curComment.className !== "pstl xs1 cl" || blockList[x] !== curComment.childNodes[1].childNodes[3].innerText) {
  58.                     continue;
  59.                 }
  60.                 let id = x + i + j;
  61.                 let curCommentDiv = curComment.childNodes[3];
  62.                 curCommentDiv.setAttribute("id", DIV_COMMENT_PREFIX + id);
  63.                 curCommentDiv.style.display = BUT_NONE;
  64.                 let button = createButton(curComment, id, DIV_COMMENT_PREFIX);
  65.                 button.style.width = "25%";
  66.             }
  67.         }
  68.     }
  69.     // 生成按钮-显示/屏蔽内容
  70.     function createButton(curDiv, buttonId, buttonPrefix) {
  71.         let button = document.createElement("input");
  72.         button.setAttribute("type", "button");
  73.         button.setAttribute("id", buttonId);
  74.         button.style.textalign = "center";
  75.         button.setAttribute("value", showContext);
  76.         button.onclick = function () {
  77.             let dg = document.getElementById(buttonPrefix + this.id);
  78.             if (this.value === hideContext) {
  79.                 this.value = showContext;
  80.                 if (buttonPrefix === DIV_PREFIX) {
  81.                     dg.childNodes[2].style.display = BUT_NONE;
  82.                 } else {
  83.                     dg.style.display = BUT_NONE;
  84.                 }
  85.             } else {
  86.                 this.value = hideContext;
  87.                 if (buttonPrefix === DIV_PREFIX) {
  88.                     dg.childNodes[2].style.display = BUT_BLOCK;
  89.                 } else {
  90.                     dg.style.display = BUT_BLOCK;
  91.                 }
  92.             }
  93.         };
  94.         curDiv.appendChild(button);
  95.         return button;
  96.     }
  97.   
  98.     for (x in blockList) {
  99.         handleDiv(x);
  100.         handleComment(x);
  101.     }
  102. })();

复制代码

本帖最后由 苏州思杰马克丁 于 2022-8-13 13:45 编辑

楼主一个键政双标狗竟然还有脸发这个贴  

https://hostloc.com/home.php?mod … w=me&from=space

回点评:

你这个傻逼早就被加入LOC油猴脚本了

https://greasyfork.org/zh-CN/scripts/448894-hostloc%E8%87%AA%E5%8A%A8%E5%B1%8F%E8%94%BD%E7%B2%89%E8%9B%86%E4%B8%8E%E6%99%BA%E9%9A%9C

使用方法: 和其他的油猴脚本一样!

第一步:安装一个用户脚本管理器

Chrome 上的 Tampermonkey要使用用户脚本,您首先需要安装一个用户脚本管理器。
根据您使用的浏览器不同,可用的用户脚本管理器也有所不同。

Chrome:Tampermonkey 或 Violent monkey
Firefox:Greasemonkey、Tampermonkey 或 Violentmonkey
Safari:Tampermonkey
Microsoft Edge:Tampermonkey
Opera:Tampermonkey 或 Violentmonkey
Maxthon:Violentmonkey
Dolphin:Tampermonkey
UC:Tampermonkey
Qupzilla:(不需要额外软件)
AdGuard:(不需要额外软件)

第二步:安装一个用户脚本

手动新建脚本添加 添加后注意按需修改

第三步:使用用户脚本

感谢分享,顺便问下有无手机端可用的
前排支持
我一直都用这个
  1. https://greasyfork.org/zh-CN/scripts/402309-hostloc-%E8%87%AA%E5%8A%A8%E5%B1%8F%E8%94%BD%E9%BB%91%E5%90%8D%E5%8D%95%E7%94%A8%E6%88%B7

复制代码

这种贴下面我都是鼓励他们尽快润
应润尽润
这种帖子我连打开的兴趣都没有
支持拉黑鉴证
用了很久了,黑名单早已150+,已经懒得再加了,加不完的
好多人带节奏,好烦