mylib

我的工具

Versão de: 23/04/2022. Veja: a última versão.

Este script não deve ser instalado diretamente. Este script é uma biblioteca de outros scripts para incluir com o diretório meta // @require https://update.greasyfork.org/scripts/435697/1043247/mylib.js

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

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;
}
//dependency:myXbListValues
function myXbClearValues() {
    return myXbListValues().forEach(e=>{
        localStorage.removeItem(e)
    })
}
//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))
}
//dependency:myAddStyle,myDomAppendSon
//myAddBtns(()=>{},a=e=>{confirm(e.target.id)},function(e){prompt(e.target.outerHTML)},function test(e){return 1})
function myAddBtns(...funcs){
    funcs.forEach(e=>{
        if(typeof e !='function') return console.log(e);
    });
    let myDiv=document.querySelector('#myBtnContainerDiv');
    if(!myDiv) myDiv=myDomAppendSon(document.body,'div','','id','myBtnContainerDiv');
    myAddStyle(`#myBtnContainerDiv{z-index:1650729359811!important;position: fixed!important;right:0!important;top:0!important}`);
    const btns=[];
    for(let i=0;i<funcs.length;i++){
        let fname=funcs[i].name;
        if(!fname) fname="noname";
        const btn = myDomAppendSon(myDiv,'input','','value',fname,'type','button','class','myQuickBtn');
        btn.addEventListener('click',funcs[i]),btns[i]=btn;
    }return btns
}
//prevent document.title from being changed
function myFixTitle(){
    Object.defineProperty(document,"title",{
        writable:false
    });
}