Put.HK User Hide

Block someone

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name         Put.HK User Hide
// @namespace    http://tampermonkey.net/
// @version      0.41
// @description  Block someone
// @require      http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// @author       Marseille vs. Porto
// @match        http://put.hk/*
// @grant        GM_getValue
// @grant        GM_setValue
// ==/UserScript==


(function() {
    'use strict';

    // Your code here...

    //Background Color
    var theme_bgc = "WHITE";

    //Main Background
    document.body.style.background = theme_bgc;
    //Table Background
    var thetds = document.getElementsByTagName('td');
    for (var j = 0; j < thetds.length; j++) {
        thetds[j].style.backgroundColor = theme_bgc;
    }

    // Newsgroup frame check
    var ngUrl = window.location.href;
    if(ngUrl.includes("newsgroup")){
    }

    // Headline frame Check
    var hlUrl = window.location.href;
    if(hlUrl.includes("headline")){

        //Navgation bar
        var hlNav = document.createElement("div");
        hlNav.id ="hlNav";
        hlNav.setAttribute("style", "height:13px;");
        document.body.insertBefore(hlNav, document.body.firstChild);

        // Block list text box
        var addName=document.createElement("input");
        addName.type="text";
        addName.id="addName";
        addName.size="12";
        addName.setAttribute("style", "font-size:10px;position:absolute;top:1px;left:8px;");
        hlNav.appendChild(addName);

        // Block button
        var submitBtn=document.createElement("input");
        submitBtn.type="button";
        submitBtn.value="Add";
        submitBtn.onclick = listUpdate;
        submitBtn.setAttribute("style", "font-size:10px;position:absolute;top:1px;left:95px;");
        hlNav.appendChild(submitBtn);

        //Press Enter to add user
        document.getElementById("addName").onkeypress = function(event)
        {
            if (event.keyCode == 13 || event.which == 13){
                listUpdate();
            }
        };

        //User list update function
        var userUpdate="";
        function listUpdate()
        {

            var x = document.getElementById("addName").value.replace('<','&lt;').replace('>', '&gt;');
            if(x!=""){
                GM_setValue("userAdd", x);
                //User list update
                if(GM_getValue("userList")==null){
                    GM_setValue("userList",(GM_getValue("userAdd")));

                }else {
                    userUpdate = GM_getValue("userList").concat("," + (GM_getValue("userAdd")));
                    GM_setValue("userList", userUpdate);
                }
            }
            location.reload();
        }

        console.log("Block user recent added: " + GM_getValue("userAdd"));
        console.log("Block list: " + GM_getValue("userList"));

        //Hide block user
        var rows = document.getElementsByTagName("table")[0].rows;
        var userBlock = "";

        if(GM_getValue("userList")!=null){
            userBlock = GM_getValue("userList").split(',');
        }

        for (var k = 0; k < userBlock.length; k++){
            for (var i = rows.length; i--;) {
                var cellContent=rows[i].cells[2].innerHTML;
                var cellLength=cellContent.length;
                var cellName=cellContent.substring(99,cellLength-11);
                if(cellName.localeCompare(userBlock[k]) == 0) {
                    rows[i].parentNode.removeChild( rows[i] );
                }
            }
        }

        //Remove select list
        var selectList=document.createElement("select");
        selectList.id="selectList";
        selectList.size="1";
        selectList.setAttribute("style", "font-size:12px;position:absolute;top:1px;left:133px;width:80px;");
        hlNav.appendChild(selectList);

        //Block list pull down menu
        if(userBlock != null){
            for ( k = 0; k < userBlock.length; k++){
                var listElement=document.createElement("option");
                var textnode = document.createTextNode(userBlock[k]);
                listElement.appendChild(textnode);
                selectList.appendChild(listElement);
            } }

        //Remove List element button
        var removeBtn=document.createElement("input");
        removeBtn.type="button";
        removeBtn.value="Del";
        removeBtn.onclick = removeElement;
        removeBtn.setAttribute("style", "font-size:10px;position:absolute;top:1px;left:217px;");
        hlNav.appendChild(removeBtn);

        // String remove function
        String.prototype.removeWord = function(searchWord){
            var str = this;
            var n = str.search(searchWord);
            while(str.search(searchWord) > -1){
                n = str.search(searchWord);
                str = str.substring(0, n) + str.substring(n + searchWord.length, str.length);
            }
            return str;
        }

        //UserList element remove
        function removeElement() {
            var removeString=selectList.value;
            //         selectList.remove(selectList.selectedIndex);
            switch(selectList.selectedIndex){

                case null:
                    break;

                case 0:
                    if (userBlock.length==1){
                        GM_setValue("userList", null);
                    }else{
                        removeString=removeString.concat(",");}
                    break;

                default:
                    removeString=(",").concat(removeString);

            }

            if (GM_getValue("userList")!=null){
                userUpdate=GM_getValue("userList").removeWord(removeString);
                GM_setValue("userList", userUpdate);
            }
            location.reload();
        }

    }

    // Article frame check
    var afUrl = window.location.href;
    if(ngUrl.includes("article")){
        // Image resize
        var image = document.getElementsByTagName('img');
        var imgTogBtn = document.createElement("input");
        imgTogBtn.type = "button";
        imgTogBtn.onclick = imageModeUpdate;
        imgTogBtn.setAttribute("style", "font-size:12px;position:fixed;top:5px;right:20px;");
        if(image.length==0){imgTogBtn.style.visibility = 'hidden'};
        document.body.appendChild(imgTogBtn);
        //Display mode handle
        switch (GM_getValue("imageMode")){
            case 1:
                imgTogBtn.value="Width Fit";
                break;
            case 2:
                imgTogBtn.value="Vertical Fit";
                break;
            default:
                imgTogBtn.value="Original";
        }

        function imageModeUpdate(){
            switch (GM_getValue("imageMode")){
                case 1:
                    GM_setValue("imageMode",2);
                    break;
                case 2:
                    GM_setValue("imageMode",0);
                    break;
                default:
                    GM_setValue("imageMode",1);
            }
            location.reload();
        }

        resize(GM_getValue("imageMode"));

        //Image resize fit window size function
        function resize(mode){
            var img = image;
            var winDim = getWinDim();
            for(var a =0 ; a < img.length; a++){
                switch(mode){

                    case 1:
                        img[a].style.width = (winDim.x * 0.9) + "px";
                        break;

                    case 2:
                        img[a].style.height = (winDim.y * 0.9) + "px";
                        break;

                    default :
                }
            }
        }

        //Get window dimension function
        function getWinDim()
        {
            var body = document.documentElement || document.body;

            return {
                x: window.innerWidth || body.clientWidth,
                y: window.innerHeight || body.clientHeight
            }
        }
    }
})();