dmhy block

把不想看到的资源从列表中抹去 动漫花园 (share.dmhy.org)

// ==UserScript==
// @name         dmhy block
// @namespace    https://github.com/tautcony
// @license      GPL version 3
// @encoding     utf-8
// @version      0.05
// @date         2017/12/30
// @modified     2018/04/04
// @description  把不想看到的资源从列表中抹去 动漫花园 (share.dmhy.org)
// @author       TautCony
// @match        *://share.dmhy.org/*
// @run-at       document-end
// ==/UserScript==
var UserBlockList = [
    { id: 693146, keywords: [/2的召[唤喚]/] },
    { id: 585619, keywords: ["浩天个人发布"] },
    { id: 690113, keywords: ["ACG调查小队"] },
    { id: 682194, keywords: ["1928530784"] },
    { id: 707206, keywords: ["wybb"] },
];
var UsernameKeywordBlacklist = [
    "我的狗死了",
    "tlove",
    "公公仔",
    "王伟熊",
];
var CommentContentKeywordBlacklist = [];
RegExp.prototype.toJSON = RegExp.prototype.toString;
var IndexOfTitle = 2;
var IndexOfUserID = 8;
var First = function (array) {
    return array[0];
};
var Last = function (array) {
    return array[array.length - 1];
};
var RemoveTorrentInBlockList = function () {
    var tableList = $("table#topic_list tbody tr");
    tableList.each(function (index, elem) {
        var tds = $(elem).find("td");
        var id = parseInt(Last($(tds[IndexOfUserID]).find("a").attr("href").split("/")), 10);
        var title = First($(tds[IndexOfTitle]).text().trim().split("\n")).trim();
        var url = $(tds[IndexOfTitle]).find("a").attr("href");
        var remove = false;
        for (var _i = 0, UserBlockList_1 = UserBlockList; _i < UserBlockList_1.length; _i++) {
            var user = UserBlockList_1[_i];
            if (id === user.id) {
                remove = true;
            }
            else {
                for (var _a = 0, _b = user.keywords || []; _a < _b.length; _a++) {
                    var keyword = _b[_a];
                    if (title.match(keyword) !== null) {
                        remove = true;
                        break;
                    }
                }
            }
            if (remove) {
                console.warn("Remove \"" + title + "\" because of it was published by or related to " + JSON.stringify(user));
                break;
            }
        }
        if (!remove) {
            for (var _c = 0, UsernameKeywordBlacklist_1 = UsernameKeywordBlacklist; _c < UsernameKeywordBlacklist_1.length; _c++) {
                var keyword = UsernameKeywordBlacklist_1[_c];
                if (title.match(keyword) !== null) {
                    console.warn("Remove \"" + title + "\" because of its title contains keyword=\"" + keyword + "\"");
                    remove = true;
                    break;
                }
            }
        }
        if (remove) {
            console.log("url: https://" + location.hostname + url);
            $(elem).remove();
            return;
        }
    });
};
var RemoveCommentInBlockList = function () {
    var container = document.querySelector("table#comment_recent");
    if (container === null) {
        return;
    }
    window.removeEventListener("scroll", RemoveCommentInBlockList);
    var comments = $("table#comment_recent tbody tr");
    comments.each(function (index, elem) {
        var username = $(elem).find("td.infotable span.username").text().trim();
        var comment = $(elem).find("td.comment_con span:last").text().trim();
        var remove = false;
        if (UsernameKeywordBlacklist.indexOf(username) >= 0) {
            console.warn("Remove following comment because it was sent by \"" + username + "\"");
            remove = true;
        }
        if (!remove) {
            for (var _i = 0, CommentContentKeywordBlacklist_1 = CommentContentKeywordBlacklist; _i < CommentContentKeywordBlacklist_1.length; _i++) {
                var keyword = CommentContentKeywordBlacklist_1[_i];
                if (comment.match(keyword) !== null) {
                    console.warn("Remove following comment because it contains keyword=\"" + keyword + "\"");
                    remove = true;
                    break;
                }
            }
        }
        if (remove) {
            console.log(comment);
            $(elem).remove();
        }
    });
};
if (location.href.indexOf("topics/view") > 0 || location.href.indexOf("comment/list") > 0) {
    window.addEventListener("scroll", RemoveCommentInBlockList);
}
else {
    RemoveTorrentInBlockList();
    $("th.{sorter:.'text'}.header").click(function () {
        setTimeout(RemoveTorrentInBlockList, 500);
    });
}