Greasy Fork

Greasy Fork is available in English.

虎扑id回帖屏蔽

根据id名屏蔽虎扑帖子

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         虎扑id回帖屏蔽
// @namespace    http://tampermonkey.net/
// @version      v0.2
// @description  根据id名屏蔽虎扑帖子
//在"blockedList"里编辑需要屏蔽的id,此id的单条回复会被屏蔽,被引用的回复会被修改为"就地正法"
// @author       zhvxiao
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
//设置里的用户排除,可以将你的专区排除.也就是不屏蔽id.
// @include        https://bbs.hupu.com/*.html
// ==/UserScript==
var blockedList = [

	"id1","id2"
];
var id_answer="此人已被就地正法";

var MyMap = function () {
	this.mapArr = {};
	this.arrlength = 0;

	//假如有重复key,则不存入
	this.put = function (key, value) {
		if (!this.containsKey(key)) {
			this.mapArr[key] = value;
			this.arrlength = this.arrlength + 1;
		}
	};
	this.get = function (key) {
		return this.mapArr[key];
	};

	//传入的参数必须为Map结构
	this.putAll = function (map) {
		if (Map.isMap(map)) {
			var innermap = this;
			map.each(function (key, value) {
				innermap.put(key, value);
			});
		} else {
			alert("传入的非Map结构");
		}
	};
	this.remove = function (key) {
		delete this.mapArr[key];
		this.arrlength = this.arrlength - 1;
	};
	this.size = function () {
		return this.arrlength;
	};

	//判断是否包含key
	this.containsKey = function (key) {
		return (key in this.mapArr);
	};
	//判断是否包含value
	this.containsValue = function (value) {
		for (var p in this.mapArr) {
			if (this.mapArr[p] == value) {
				return true;
			}
		}
		return false;
	};
	//得到所有key 返回数组
	this.keys = function () {
		var keysArr = [];
		for (var p in this.mapArr) {
			keysArr[keysArr.length] = p;
		}
		return keysArr;
	};
	//得到所有value 返回数组
	this.values = function () {
		var valuesArr = [];
		for (var p in this.mapArr) {
			valuesArr[valuesArr.length] = this.mapArr[p];
		}
		return valuesArr;
	};

	this.isEmpty = function () {
		if (this.size() === 0) {
			return false;
		}
		return true;
	};
	this.clear = function () {
		this.mapArr = {};
		this.arrlength = 0;
	};
	//循环
	this.each = function (callback) {
		var index = 0;
		for (var p in this.mapArr) {
			callback(p, index++, this.mapArr[p]);
		}

	};
	this.isMap = function (map) {
		return (map instanceof Map);
	};

};

var blockedStyle = new MyMap();
blockedStyle.put("div.floor>div.floor-show div.left>a", 5);//普通跟帖
blockedStyle.put("div.floor>div.floor_box div.left>a", 4);//点亮跟帖
blockedStyle.put("blockquote b>a.u", 3);

$(document).ready(
	function () {
	init();
});

function init() {
    var my_parent;
	blockedList.forEach(function (item, index, array) {
		blockedStyle.each(function (key1, index, value1) {
          
			if (index < blockedStyle.size()-1  ) {
				$(key1 + ":contains(" + item + ")").each(function () {
					if ($(this).html()== item) {
						my_parent = $(this);
						for (var i = 0; i < value1; i++) {
							my_parent = my_parent.parent();

						}
                  
						my_parent.remove();
						console.log("屏蔽掉关于" + item + "的一条帖子");
					}

				});
			} else  {
             
				$(key1 + ":contains(" + item + ")").each(function () {
                       
					if ($(this).html() == item) {
                        console.log(key1+item);
						my_parent = $(this);
						for (var i = 0; i < value1; i++) {
							my_parent = my_parent.parent();

						}
               
						my_parent.html(id_answer);

					}

				});
			}
		});
	});
}