UOJ 博客黑名单

有一些人没有意识到它们的博客会被挂上首页让所有人看到

目前為 2019-08-16 提交的版本,檢視 最新版本

// ==UserScript==
// @name         UOJ 博客黑名单
// @namespace    http://tampermonkey.net/
// @version      0.0.0
// @description  有一些人没有意识到它们的博客会被挂上首页让所有人看到
// @author       iotang
// @match        http://uoj.ac/blogs*
// @match        https://uoj.ac/blogs*
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

"use strict";

function getBanList()
{
    var temp = GM_getValue("userBanList");

    if(temp === undefined)
    {
        GM_setValue("userBanList", {"zuxianyouming": "zuxianyouming"});
        temp = GM_getValue("userBanList");
    }

    return temp;
}

function addUserBan(who)
{
    var temp = getBanList();

    temp[who] = who;
    GM_setValue("userBanList", temp);

    alert("用户 `" + who + "` 被屏蔽");
}

function delUserBan(who)
{
    var temp = getBanList();

    if(temp[who] != who)
    {
        alert("用户 `" + who + "` 不在黑名单中");
        return;
    }

    temp[who] = undefined;

    GM_setValue("userBanList", temp);

    alert("用户 `" + who + "` 被取消屏蔽(刷新来查看)");
}

function cls()
{
    var nowlist = getBanList();

    var tbody = document.getElementsByTagName("tbody")[0];

    var tnodes = tbody.childNodes;

    for(var i = 0; i < tnodes.length; i++)
    {
        var node = tnodes[i];

        var what = node.childNodes[0].childNodes[0].innerHTML;
        var who = node.childNodes[1].childNodes[0].innerHTML;

        if(what === "新博客" || nowlist[who] === who)
        {
            tbody.removeChild(node);
            i--;
            continue;
        }
    }
}

function confirmUserBan()
{
    var who = prompt("输入将被屏蔽的用户 ID");

    if(who === undefined || who.length <= 0)return;

    addUserBan(who);
    cls();
}

function undoUserBan()
{
    var who = prompt("输入将被取消屏蔽的用户 ID");

    if(who === undefined || who.length <= 0)return;

    delUserBan(who);
}

var uojContent = document.getElementsByClassName("uoj-content")[0];

var buttonBanUser = document.createElement("button");
buttonBanUser.style = "background: rgb(255,212,212); border: none;";
buttonBanUser.name = "banUser";
buttonBanUser.id = "banUser";
buttonBanUser.innerHTML = "黑名单";
buttonBanUser.onclick = function(){confirmUserBan();};

var buttonUndoBanUser = document.createElement("button");
buttonUndoBanUser.style = "background: rgb(212,255,212); border: none;";
buttonUndoBanUser.name = "undoBanUser";
buttonUndoBanUser.id = "undoBanUser";
buttonUndoBanUser.innerHTML = "白名单";
buttonUndoBanUser.onclick = function(){undoUserBan();};

uojContent.appendChild(buttonBanUser);
uojContent.appendChild(buttonUndoBanUser);

cls();
长期地址
遇到问题?请前往 GitHub 提 Issues。