Add/remove an unlimited amount of users from the blacklist of forum posts.
当前为 
// ==UserScript==
// @name         Unlimited MAL Ignore posts
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Add/remove an unlimited amount of users from the blacklist of forum posts.
// @author       Only_Brad
// @match        https://myanimelist.net/*
// @grant        GM_addStyle
// @run-at document-end
// ==/UserScript==
(function() {
    const BLACKLIST_URL = "https://myanimelist.net/blacklist";
    const BLACKLIST_KEY = "ignore-list";
    let blacklist;
    //Load the blacklist from the local storage
    function loadBlackList() {
        blacklist = JSON.parse(localStorage.getItem(BLACKLIST_KEY)) || [];
    }
    //Ignore users im forum posts
    if (window.location.href.includes("forum/?topicid")) {
        //The ignore function, will delete the post of users in the blacklist
        function ignore() {
            const allUsers = document.querySelectorAll(".forum_boardrow2 strong");
            for (let i = 0; i < allUsers.length; i++) {
                if (blacklist.indexOf(allUsers[i].innerHTML) >= 0) {
                    let post = allUsers[i].parentNode;
                    for (var j = 0; j < 7; j++) {
                        post = post.parentNode
                    }
                    post.style.display = "none";
                    post.previousElementSibling.style.display = "none";
                }
            }
        }
        loadBlackList();
        ignore();
    }
    //Create the webpage of the ignore list on "BLACKLIST_URL"
    else if (window.location.href === BLACKLIST_URL) {
        document.title = "Blacklist - MyAnimeList.net";
        //remove the 404 stuff
        document.querySelector("h1").textContent = "Ignore List";
        document.querySelector(".error404").remove();
        //CSS
        GM_addStyle(".user{display:flex;margin:10px}.name{margin-right:20px}.name{border-bottom:solid #000 1px}.name[contenteditable]{min-width:100px;border-bottom:solid #000 1px}.name[contenteditable]:focus{border:none;outline:solid red 5px}.page-common #content{display:flex;justify-content:center;}")
        //HTML
        document.getElementById("content").innerHTML =
            `<div data-blacklist class="black-list"></div>
        <div data-add-user class="add-user">
            <div data-user class="user">
                <div data-name class="name" contenteditable="true" onclick="this.focus()"></div>
                <button data-add class="add">Add</div>
            </div>
        </div>`
        //functions
        function loadBlackListNodes() {
            loadBlackList();
            blacklist.forEach(createNode);
        }
        //Save the blacklist into the local storage
        function saveBlackList() {
            localStorage.setItem(BLACKLIST_KEY, JSON.stringify(blacklist));
        }
        //Add a user to the blacklist if its not already there
        function addUser(username) {
            if (!blacklist.includes(username)) blacklist.push(username);
            saveBlackList();
        }
        //Remove a user from the blacklist if it's there
        function removeUser(userName) {
            blacklist = blacklist.filter(name => userName !== name);
            saveBlackList();
        }
        //remove the user node from the html code and then update the localstorage
        function removeNode(e) {
            const row = e.target.parentNode;
            const name = row.querySelector("[data-name]").textContent;
            row.remove();
            removeUser(name);
        }
        //modify the user node from the html code and then update the localstorage
        function saveNode(e) {
            const newName = e.target.textContent;
            const previousName = e.target.dataset.previousName;
            previousName && removeUser(previousName);
            if (newName !== "") {
                addUser(newName);
                e.target.dataset.previousName = newName;
            } else e.target.parentNode.remove();
        }
        //add a new user node to the html code and then update the localstorage
        function addNode(e) {
            const node = e.target.parentNode;
            const usernameNode = node.querySelector("[data-name]");
            const username = usernameNode.textContent;
            usernameNode.textContent = "";
            createNode(username);
            addUser(username);
        }
        //create the user node then add it the html code
        function createNode(username) {
            const newUser = document.createElement("div");
            newUser.setAttribute("data-user", "");
            newUser.className = "user";
            newUser.innerHTML = `<div data-name class="name" contenteditable="true" onclick="this.focus()" data-previous-name="${username}">${username}</div>
            <button data-remove class="remove">Remove</button>`;
            newUser.querySelector("[data-name]").addEventListener("focusout", saveNode);
            newUser.querySelector("[data-remove]").addEventListener("click", removeNode);
            document.querySelector("[data-blacklist]").append(newUser);
        }
        document.querySelector("[data-add]").addEventListener("click", addNode);
        loadBlackListNodes();
    }
})();