Chiphell Helper

Chiphell 辅助,屏蔽帖子,拉黑用户

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Chiphell Helper
// @namespace    http://tampermonkey.net/
// @version      0.3
// @license      GNU GPLv3
// @description  Chiphell 辅助,屏蔽帖子,拉黑用户
// @author       Ersic
// @match        http*://www.chiphell.com/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        unsafeWindow
// ==/UserScript==

(function () {
	"use strict";

	var pathname = unsafeWindow.location.pathname;

	// 帖子列表页
	if (pathname.indexOf("forum") != -1) {
		checkPost();
		// 添加屏蔽按钮
		document.querySelectorAll(".new").forEach((el, i) => {
            if (el.parentNode.parentNode.id.indexOf("normalthread_") != -1) {
                let pid = el.parentNode.parentNode.id.substring(13);
                let newEl = document.createElement("a");
                newEl.className = "closeprev y";
                newEl.href = "javascript:void(0);";
                newEl.setAttribute("pid", pid);
                newEl.title = "屏蔽";
                newEl.innerText = "屏蔽";
                newEl.onclick = function (event) {
                    if (confirm("确认屏蔽")) {
                        let pid = event.target.getAttribute("pid");
                        if (pid) {
                            let blockPost = JSON.parse(unsafeWindow.localStorage.getItem("blockPost"));
                            if (blockPost == null) {
                                blockPost = [];
                            }
                            blockPost.push(pid);
                            unsafeWindow.localStorage.setItem("blockPost", JSON.stringify(blockPost));
                            event.target.parentElement.parentElement.parentElement.remove();
                        }
                    }
                };
                el.querySelector(".tdpre").before(newEl);
            }
		});
		document.querySelectorAll(".common").forEach((el, i) => {
            if (el.parentNode.parentNode.id.indexOf("normalthread_") != -1) {
                let pid = el.parentNode.parentNode.id.substring(13);
                let newEl = document.createElement("a");
                newEl.className = "closeprev y";
                newEl.href = "javascript:void(0);";
                newEl.setAttribute("pid", pid);
                newEl.title = "屏蔽";
                newEl.innerText = "屏蔽";
                newEl.onclick = function (event) {
                    if (confirm("确认屏蔽")) {
                        let pid = event.target.getAttribute("pid");
                        if (pid) {
                            let blockPost = JSON.parse(unsafeWindow.localStorage.getItem("blockPost"));
                            if (blockPost == null) {
                                blockPost = [];
                            }
                            if (blockPost.indexOf(pid) == -1) {
                                blockPost.push(pid);
                                unsafeWindow.localStorage.setItem("blockPost", JSON.stringify(blockPost));
                            }
                            event.target.parentElement.parentElement.parentElement.remove();
                        }
                    }
                };
                el.querySelector(".tdpre").before(newEl);
            }
		});
	}

	// 帖子详情页
	if (pathname.indexOf("thread") != -1) {
		checkUser();
	}

	// 黑名单页
	if (unsafeWindow.location.href.indexOf("blacklist") != -1) {
        let blockUser = JSON.parse(unsafeWindow.localStorage.getItem("blockUser"));
		if (blockUser == null) {
			blockUser = [];
		}
		document.querySelectorAll(".buddy h4 .note").forEach((el, i) => {
			let uid = el.id.replace("friend_note_", "");
			if (blockUser.indexOf(uid) == -1) {
				blockUser.push(uid);
				unsafeWindow.localStorage.setItem("blockUser", JSON.stringify(blockUser));
			}
		});
	}

	function checkPost() {
		let blockPost = JSON.parse(unsafeWindow.localStorage.getItem("blockPost"));
		if (blockPost == null) {
			blockPost = [];
		}
		let blockUser = JSON.parse(unsafeWindow.localStorage.getItem("blockUser"));
		if (blockUser == null) {
			blockUser = [];
		}

		document.querySelectorAll("#threadlisttableid tbody").forEach((el, i) => {
            if (el.id.indexOf("normalthread_") != -1) {
                let pid = el.id.substring(el.id.indexOf("_") + 1);
                if (blockPost.indexOf(pid) != -1) {
                    el.remove();
                } else {
                    let linkEl = el.querySelectorAll(".by a");
                    if (linkEl.length > 0) {
                        let uid = linkEl[0].getAttribute("href").replace("space-uid-", "").replace(".html", "");
                        if (blockUser.indexOf(uid) != -1) {
                            el.remove();
                        }
                    }
                }
            }
		});
	}

	function checkUser() {
		let blockUser = JSON.parse(unsafeWindow.localStorage.getItem("blockUser"));
		if (blockUser != null) {
			// 删除回复
			document.querySelectorAll(".authi .xw1 ").forEach((el, i) => {
				let uid = el.getAttribute("href").replace("space-uid-", "").replace(".html", "");
				if (blockUser.indexOf(uid) != -1) {
					el.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.remove();
				}
			});
			// 删除点评
			document.querySelectorAll(".pstl").forEach((el, i) => {
				let href = el.querySelectorAll(".xi2")[0].getAttribute("href");
				if (href) {
					let uid = href.replace("space-uid-", "").replace(".html", "");
					if (blockUser.indexOf(uid) != -1) {
						el.remove();
					}
				}
			});
		}
	}
})();