您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
troll must die
当前为
- // ==UserScript==
- // @name NGA Filter
- // @version 0.1
- // @author snyssss
- // @description troll must die
- // @match *bbs.nga.cn/thread.php?fid=*
- // @match *bbs.nga.cn/read.php?tid=*
- // @match *ngabbs.com/thread.php?fid=*
- // @match *ngabbs.com/read.php?tid=*
- // @grant none
- // @noframes。
- // todo 屏蔽模式;直接在页面里添加屏蔽人
- // v0.1 简单做了屏蔽逻辑,根据trollArray里的用户ID删除相关帖子或者楼层。
- // @namespace https://greasyfork.org/users/263018
- // ==/UserScript==
- (function () {
- 'use strict';
- const trollArray = [35159831];
- const trollMap = Object.assign({}, ...trollArray.map(item => ({ [item]: true })));
- const getUID = function(e) {
- let author = e.getElementsByClassName('author')[0];
- if (author) {
- return author.search.match(/uid=(\S*)/)[1];
- }
- };
- const isTroll = function (uid) {
- uid = ~~uid;
- if (uid) {
- return trollMap[uid];
- }
- return false;
- };
- const observerElements = [
- [
- document.getElementById('topicrows'),
- function (e) {
- let uid = getUID(e);
- if (isTroll(uid)) {
- e.remove();
- }
- }
- ],
- [
- document.getElementById('m_posts_c'),
- function (e) {
- let uid = getUID(e);
- if (isTroll(uid)) {
- e.remove();
- }
- }
- ]
- ];
- [].slice.call(observerElements).forEach(function (e) {
- if (!e[0]) return;
- e[0].refilter = function() {
- [].slice.call(e[0].children).forEach(function (c) {
- e[1](c);
- });
- }
- e[0].refilter();
- let observer = new MutationObserver(function (mutations) {
- mutations.forEach(function (mutation) {
- if (mutation.addedNodes.length) {
- e[1](mutation.addedNodes[0]);
- }
- });
- });
- observer.observe(e[0], {
- childList: true
- });
- });
- })();