NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Block Bad Guys on U2
// @version 0.1
// @description 屏蔽黑名单上成员的发言
// @author ChengChung
// @match http*://u2.dmhy.org/*
// @grant none
// @updateURL https://openuserjs.org/meta/joshu/Block_Bad_Guys_on_U2.meta.js
// ==/UserScript==
(function() {
'use strict';
var url = window.location.pathname;
var para = window.location.search;
const BLOCK_LIST = [43579,38404];
const ENABLE_GLOBAL = true;
const ENABLE_CHAT = true;
const ENABLE_TORRENT_COMMENT = true;
const ENABLE_FORUM_POST = true;
const ENABLE_FORUM_LIST_ITEM = true;
const SHOUTBOX_URL = /^\/shoutbox.php$/i;
const TORRENT_DETAIL_URL = /^\/details.php$/i;
const OFFER_URL = /^\/offers.php$/i;
const FORUM_URL = /^\/forums.php$/i;
const OFFER_DETAIL = /^\?.*id=\d+.*/i;
const TOPIC_DETAIL = /^\?.*action=viewtopic.*/i;
const TOPIC_LIST = /^\?.*action=viewforum.*/i;
const UID_REG = /userdetails\.php\?id=(\d+)/i;
const SHOUTBOX_ITEM_SELECTOR = "body > table > tbody > tr:nth-child(1) > td > div";
const TORRENT_DETAIL_COMMENT_ITEM_SELECTOR = "#outer > table.main > tbody > tr > td > table > tbody > tr > td > div";
const FORUM_POSTS_ITEM_SELECTOR = "#outer > table:nth-child(3) > tbody > tr > td > table:nth-child(2) > tbody > tr > td > div";
const FORUM_POSTS_LIST_ITEM_SELECTOR = "#outer > table:nth-child(4) > tbody > tr";
const CHAT_UID_SELECTOR = "> span.nowrap > a";
const COMMENT_UID_SELECTOR = "table > tbody > tr > td:nth-child(1) > span > a";
const TOPIC_LIST_ITEM_UID_SELECTOR = "td:nth-child(2) > span > a";
const HINT = "BLOCKED";
var RemoveChatFunc = function() {
// U2娘没有身份页面呢
if ($(this).find("span.nowrap").length>0) {
var uid = Number($(this).find(CHAT_UID_SELECTOR).attr("href").match(UID_REG)[1]);
if ($.inArray(uid, BLOCK_LIST)>=0) {
// 移除黑名单对U2娘提问时U2娘的回答
if ($(this).prev().find("span.nowrap").length===0) {
$(this).prev().remove();
}
$(this).remove();
}
}
};
var RemoveCommentFunc = function() {
// 排除候选前候选后分隔栏,并排除已删号者的筛选
if ($(this).find(COMMENT_UID_SELECTOR).length>0) {
var uid = Number($(this).find(COMMENT_UID_SELECTOR).attr("href").match(UID_REG)[1]);
if ($.inArray(uid, BLOCK_LIST)>=0) {
$(this).next().remove();
$(this).remove();
}
}
};
var RemoveListItemFunc = function() {
// 排除已删号者的筛选
if ($(this).find(TOPIC_LIST_ITEM_UID_SELECTOR).length>0) {
var uid = Number($(this).find(TOPIC_LIST_ITEM_UID_SELECTOR).attr("href").match(UID_REG)[1]);
if ($.inArray(uid, BLOCK_LIST)>=0) {
$(this).remove();
}
}
};
if (ENABLE_GLOBAL) {
if (ENABLE_CHAT&&url.match(SHOUTBOX_URL)!==null) {
$(SHOUTBOX_ITEM_SELECTOR).each(RemoveChatFunc);
}
if (ENABLE_TORRENT_COMMENT&&(url.match(TORRENT_DETAIL_URL)!==null||(url.match(OFFER_URL)!==null&¶.match(OFFER_DETAIL)!==null))) {
$(TORRENT_DETAIL_COMMENT_ITEM_SELECTOR).each(RemoveCommentFunc);
}
if (url.match(FORUM_URL)!==null) {
if (ENABLE_FORUM_POST&¶.match(TOPIC_DETAIL)!==null){
$(FORUM_POSTS_ITEM_SELECTOR).each(RemoveCommentFunc);
} else if (ENABLE_FORUM_LIST_ITEM&¶.match(TOPIC_LIST)!==null) {
$(FORUM_POSTS_LIST_ITEM_SELECTOR).each(RemoveListItemFunc);
}
}
}
})();