wikipedia show all languages link and old Layout Design

show all languages link

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==UserScript==
// @name         wikipedia show all languages link and old Layout Design
// @description  show all languages link
// @namespace    wikipedia_lang
// @author       Covenant
// @version      1.0.5
// @license      MIT
// @homepage
// @match        https://*.wikipedia.org/*
// @exclude      https://*.m.wikipedia.org/*
// @exclude      https://www.wikipedia.org/*
// @icon         data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9/AAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiIgzuIV4iIiIhndo53KIiIiB/WvXoYiIiIfEZfWBSIiIEGi/foqoiIgzuL84i9iIjpGIoMiEHoiMkos3FojmiLlUipYliEWIF+iDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// @connect
// @run-at       document-end
// @noframes
// ==/UserScript==
const search_useskin=['','monobook','vector','timeless','vector-2022'];
function fn_url(url){
    let obj_url=new URL(url);
    let params=obj_url.searchParams;
    //let params=new URLSearchParams(obj_url.search);
    return [obj_url,params];
}
//console.log("break");
function main_01(){
    var lang=document.querySelectorAll('ul>li.interlanguage-link');//vector
    if(lang.length!=0){
        for(let i = 0; i < lang.length; i++){
            lang[i].style.display="";
        }
    }
    if(document.querySelectorAll('body')[0].classList.contains('skin-'+'vector-2022')){
        var tmp=document.querySelectorAll('nav#mw-panel-toc')[0];
        tmp.appendChild(document.querySelectorAll('div#p-lang-btn>div>ul')[0].cloneNode(true));
    }
}
(function() {
    'use strict';
    //GM_registerMenuCommand("Hello, world (simple)", () => {alert("Hello, world!");});
    let url=fn_url(document.location);
    let useskin=GM_getValue('useskin','');
    console.log("GM_getValue: "+useskin);
    if(useskin!=''){
        let apply_skin=!document.querySelectorAll('body')[0].classList.contains('skin-'+(useskin=='vector'?useskin+'-legacy':useskin));
        if(apply_skin){
            if(url[1].get('useskin')==null){
                url[0].searchParams.append('useskin',useskin);
                window.location.replace(url[0].toString());
            }
            else{//?useskin=
                if(url[1].get('useskin')=="cologneblue"||url[1].get('useskin')=="modern"||url[1].get('useskin')=="minerva"){
                    useskin=url[1].get('useskin');
                }
                else{
                    url[0].searchParams.set('useskin',useskin);
                    window.location.replace(url[0].toString());
                }
            }
        }
        {//?useskin=
            let anchor=document.querySelectorAll('a');
            for(let n = 0; n < anchor.length; n++){
                if(anchor[n].href.search(new RegExp("javascript:", "i"))==-1&&anchor[n].href!=''&&anchor[n].href.search(new RegExp(document.location.host, "i"))!=-1){
                    let anchor_href=fn_url(anchor[n].href);
                    if(anchor_href[1].get('useskin')==null){
                        anchor_href[0].searchParams.append('useskin',useskin);
                        anchor[n].href=anchor_href[0].toString();
                    }
                }
            }
        }
    }
    else{//default useskin
        if(url[1].get('useskin')!=null){
            url[0].searchParams.delete('useskin');
            window.location.replace(url[0].toString());
        }
    }
    for (let i = 0; i < search_useskin.length; i++){//script menu
        let click=(useskin==search_useskin[i]?'✔️':"");
        GM_registerMenuCommand((search_useskin[i]==''?'default':search_useskin[i])+click, () => {
            GM_setValue('useskin', search_useskin[i]);
            url[0].searchParams.set('useskin',search_useskin[i]);
            window.location.replace(url[0].toString());
            //alert(search_useskin[i]);
            //location.reload();
        });
    }
    //alert(useskin);
    window.setTimeout(( () => main_01() ), 3000);
})();