mylib

我的工具

Versione datata 16/04/2022. Vedi la nuova versione l'ultima versione.

Questo script non dovrebbe essere installato direttamente. È una libreria per altri script da includere con la chiave // @require https://update.greasyfork.org/scripts/435697/1040750/mylib.js

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

function myAddStyle(css,className='') {
    const style = document.createElement('style');
    style.type='text/css';
    style.textContent = css;
    style.className=arguments[1];
    const h0 =document.querySelector('html');
    h0.insertBefore(style,h0.children[0]);
}
//enable or disable style with className
function mySwitchStyle(...styleClassNames) {
    styleClassNames.forEach(e=>{
        const style=document.querySelector('style.'+e);
        style.type==0?style.type="text/css":style.type=0
    })
}
//seconds2date(new Date().getTime())
function seconds2date(seconds){
    const date = new Date(seconds)
    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
    const hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
    const minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
    const second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
    const currentTime = year + "-" + month + "-" + day + "  " + hour + ":" + minute + ":" + second;
    return currentTime
}
//myDocumentBodyAppendDom(document.body,'tag','content','idk','true','data-s')
function myDomAppendSon(dom,tag,content) {
    const son = document.createElement(tag)
    son.appendChild(document.createTextNode(content));
    const len = arguments.length;
    if (len>3) {
        for(let i=3;i<len;i+=2){
            son.setAttribute([arguments[i]],arguments[i+1])
        }
    }
    dom.appendChild(son);
    return son;
}
//myDomAppendBro(document.body,'div','','suck','1','dick')
function myDomAppendBro(dom,tag,content){
    const bro = document.createElement(tag);
    bro.appendChild(document.createTextNode(content));
    const len = arguments.length;
    if (len>3) {
        for(let i=3;i<len;i+=2){
            bro.setAttribute([arguments[i]],arguments[i+1])
        }
    }
    dom.parentNode.insertBefore(bro,dom.nextElementSibling);
    return bro;
}
//跳出登录框后再执行
function myFuckTiebaLogin(userName,password){
    document.getElementById('TANGRAM__PSP_5__footerULoginBtn').click();
    document.getElementById('TANGRAM__PSP_5__userName').outerHTML+='';
    document.getElementById('TANGRAM__PSP_5__password').outerHTML+='';
    document.getElementById('TANGRAM__PSP_5__userName').value=userName;
    document.getElementById('TANGRAM__PSP_5__password').value=password;
    return document.getElementById('TANGRAM__PSP_5__submit').click();
}
function myXbGetValue(k, aDefault) {
    let val = localStorage.getItem("XB_"+k)
    if (null === val && 'undefined' != typeof aDefault) return aDefault;
    return val;
}
//myXbSetValue('k', 'v')
function myXbSetValue(k, v) {
    localStorage.setItem("XB_"+k, v);
}
//myXbSetValue('k')
function myXbDeleteValue(k) {
    if(k.indexOf("XB_")!=-1) localStorage.removeItem(k);
}
function myXbListValues() {
    let list=[],j=0;
    for (let i = 0; i < localStorage.length; i++) {
        let k=localStorage.key(i);
        if(k.indexOf("XB_")!=-1) list[j++] = localStorage.key(i);
    }return list;
}
//get len of json obj
function myGetJsonLen(jsonObj){
    let jsonLen = 0, key;
    for (key in jsonObj) {
        if (jsonObj.hasOwnProperty(key)) jsonLen++;
    }return jsonLen;
}
//syn console.log
function myLog(text){
    console.log(JSON.stringify(text))
}function myAlert(text){
    myAlert(JSON.stringify(text))
}
//dependency:myAddStyle,myDomAppendSon
//myReaddBtnsWithFuncs(()=>{},a=e=>{confirm(e.target.id)},function(e){prompt(e.target.outerHTML)},function test(e){return 1})
function myReaddBtnsWithFuncs(...funcs){
    funcs.forEach(e=>{
        if(typeof e !='function') return;
    });
    let myDiv=document.querySelector('#myDiv0');
    if(myDiv) myDiv.remove(),myDiv=myDomAppendSon(document.body,'div','','id','myDiv0')
    else myDiv=myDomAppendSon(document.body,'div','','id','myDiv0');
    myAddStyle(`#myDiv0{z-index:999999;position: fixed!important;right: 0;top:0}`);
    for(let i=0;i<funcs.length;i++){
        let fname=funcs[i].name;console.log(fname)
        const bname="btn"+i;
        if(!fname) fname="noname";
        const btn = myDomAppendSon(myDiv,'input','','value',fname,'type','button','id',bname);
        btn.addEventListener('click',funcs[i])
    }
}
//myAddBtnsWithFuncs(()=>{},a=e=>{confirm(e.target.id)},function(e){prompt(e.target.outerHTML)},function test(e){return 1})
function myAddBtnsWithFuncs(...funcs){
    funcs.forEach(e=>{
        if(typeof e !='function') return;
    });
    let myDiv=document.querySelector('#myDiv1');
    if(!myDiv) myDiv=myDomAppendSon(document.body,'div','','id','myDiv1')
    myAddStyle(`#myDiv1{z-index:999999;position: fixed!important;right: 0;bottom:0}`);
    for(let i=0;i<funcs.length;i++){
        let fname=funcs[i].name;console.log(fname)
        const bname="btn"+i;
        if(!fname) fname="noname";
        const btn = myDomAppendSon(myDiv,'input','','value',fname,'type','button','id',bname);
        btn.addEventListener('click',funcs[i])
    }
}
//prevent document.title from being changed
function myFixTitle(){
    Object.defineProperty(document,"title",{
        writable:false
    });
}