mylib

我的工具

当前为 2022-04-23 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.org/scripts/435697/1043247/mylib.js

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
    });
}