CSDN Blog Super Simplification

move comment area to left side & remove login requirement, move body area to right side & auto trigger read more button, remove author panel,recommendation panel etc..., change the background to default style, hide login pop up panel

Από την 07/10/2020. Δείτε την τελευταία έκδοση.

// ==UserScript==
// @name         CSDN Blog Super Simplification
// @name:zh-CN   CSDN Blog 极致简化
// @namespace    csdn_blog_super_simplification
// @version      1.1
// @description  move comment area to left side & remove login requirement, move body area to right side & auto trigger read more button, remove author panel,recommendation panel etc..., change the background to default style, hide login pop up panel
// @description:zh-CN  move comment area to left side & remove login requirement, move body area to right side & auto trigger read more button, remove author panel,recommendation panel etc..., change the background to default style, hide login pop up panel
// @author       Xavier Wong
// @include      https://blog.csdn.net/*
// @exclude      https://www.csdn.net/*
// @grant        none
// ==/UserScript==
function getElements(type, names, elements) {
    if(type==="tag"){
        for(let idx = 0; idx < names.length; idx++){
            elements.push.apply(elements,document.getElementsByTagName(names[idx]));
        }
    }else if(type==="class"){
        for(let idx = 0; idx < names.length; idx++){
            elements.push.apply(elements,document.getElementsByClassName(names[idx]));
        }
    }else if(type==="id"){
        for(let idx = 0; idx < names.length; idx++){
            elements.push(document.getElementById(names[idx]));
        }
    }
    return elements;
}

(
    function() {
        'use strict';
        document.getElementsByTagName("body")[0].style.setProperty("background-color","#f5f6f7","important");
        document.getElementsByTagName("body")[0].style.setProperty("background-image","none","important");
        document.getElementsByClassName("main_father")[0].style.height = 'unset';

        // add remove elements by name
        const classes = ["hide-article-box", "csdn-side-toolbar", "recommend-box", "template-box", "footer-box"];
        const tags = ["aside"];
        const ids = ["rightAside", "btnMoreComment", "tip_comment", "quickComment"];

        // remove all
        let elementsToRemove = [];
        getElements("class", classes, elementsToRemove);
        getElements("tag", tags, elementsToRemove);
        getElements("id", ids, elementsToRemove);
        for(let idx = 0; idx < elementsToRemove.length; idx++){
            elementsToRemove[idx].remove();
        }

        // tags to extend to 100% width
        let elementsToExtend = [];
        getElements("id", ["mainBox","article_content"], elementsToExtend);
        getElements("tag", ["main"], elementsToExtend);
        for(let idx = 0; idx < elementsToExtend.length; idx++){
            elementsToExtend[idx].style.width = "100%";
            elementsToExtend[idx].style.height = "100%";
        }

        let elementsToChange = [];
        getElements("class", ["blog-content-box"], elementsToChange);
        for(let idx = 0; idx < elementsToChange.length; idx++){
            elementsToChange[idx].style.width = "70%";
            elementsToChange[idx].style.float = "right";
        }
        elementsToChange = [];
        getElements("class", ["more-toolbox", "left-toolbox"], elementsToChange);
        for(let idx = 0; idx < elementsToChange.length; idx++){
            elementsToChange[idx].style.width = "100%";
            elementsToChange[idx].style.float = "right";
        }

        elementsToChange = [];
        getElements("class", ["comment-box"], elementsToChange);
        for(let idx = 0; idx < elementsToChange.length; idx++){
            elementsToChange[idx].style.position = "fixed";
            elementsToChange[idx].style.top = "52px";
            elementsToChange[idx].style.left = "24px";
            elementsToChange[idx].style.width = "28%";
        }

        window.onclick = function(){
            var elementsToHide = [];
            var loginCleared = false;
            getElements("class", ["login-box", "login-mark"], elementsToHide);
            for(let idx = 0; idx < elementsToHide.length; idx++){
                elementsToHide[idx].style.visibility = "hidden";
                loginCleared = true;
            }
            if(loginCleared) {
                window.onclick = null;
            }
        }

        setTimeout(
            function(){
                document.getElementsByClassName("comment-list-box")[0].style.overflow = 'scroll';
                document.getElementsByClassName("comment-list-box")[0].style.maxHeight = 'calc(70vh)';
                document.getElementsByClassName("comment-list-box")[0].style.marginBottom = '10px';
                document.getElementById("commentPage").classList.remove('d-none')
                document.getElementById("commentPage").style.marginBottom='25px';
            }, 100);


    }
)();