// ==UserScript== // @name Baidu Multiuser Unsafe // @namespace http://geraldl.ml/ // @author Gerald // @icon https://s.gravatar.com/avatar/a0ad718d86d21262ccd6ff271ece08a3?s=80 // @version 1.0.1 // @description 百度马甲切换不安全版(将保存用户名和密码,请慎用!) // @homepageURL http://geraldl.ml/userjs/BaiduMultiuserUnsafe // @match *://*.baidu.com/* // @include *.baidu.com/* // @exclude http://developer.baidu.com/* // @exclude http://web.im.baidu.com/* // @run-at document-start // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @downloadURL none // ==/UserScript== function safeText(t){ return t.replace(/&/g,'&').replace(/ absolute gu.top+=window.pageYOffset; else // absolute => fixed gu.top-=window.pageYOffset; pinUpdate(); locate(); saveLoc(); } function buildMenu(){ GM_addStyle('\ #ge_uu{display:block;padding:10px;text-align:left;}\ #ge_uu .ge_h{display:none;}\ #ge_uu{z-index:10006;font:normal normal 400 12px/18px 宋体;position:fixed;}\ #ge_uu>span{background:white;color:blue;border-radius:3px;border:1px solid #c0c0c0;padding:3px;cursor:pointer;vertical-align:middle;}\ #ge_uu>div{position:relative;margin-top:3px;}\ #ge_uu>div>*{position:absolute;}\ .ge_uu{background:white;border:1px solid silver;box-shadow:5px 5px 7px #333;}\ .ge_uu{width:120px;max-height:400px;overflow-x:hidden;overflow-y:auto;}\ .ge_uu>li{position:relative;display:block;padding:2px 20px 4px 6px;}\ .ge_uu>li:hover,#gu_users .ge_user:hover{background:lightgray;}\ .ge_uu>li:last-child:hover{background:white;}\ .ge_uu span{position:absolute;top:0;right:0;color:white;background:#77f;border-radius:3px;margin:2px;cursor:pointer;padding:2px;}\ .ge_uu span:hover{background:red;}\ .ge_uu a,#gu_users span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%;}\ #gu_users{width:340px;height:100px;overflow:auto;border:1px solid;}\ #gu_users .ge_user{position:relative;color:dodgerblue;}\ #gu_users .ge_name{display:block;margin-right:100px;padding:3px 5px;}\ #gu_users .ge_control{position:absolute;top:0;right:0;text-align:right;}\ .ge_sym{display:inline-block;width:7px;height:7px;border:1px solid #c0c0c0;border-radius:4px;margin-left:3px;}\ .ge_sym.ge_pin{background:#c0c0c0;}\ '); if(!document.querySelector('#ge_css')) GM_addStyle('\ .ge_popup{display:none;z-index:10006;font:normal normal 400 12px/18px 宋体;position:fixed;background:white;border:1px solid silver;box-shadow:5px 5px 7px #333;text-align:left;}\ .ge_opt{padding:20px;border-radius:5px;}\ .ge_opt fieldset{border:1px solid silver;border-radius:5px;padding:5px;}\ .ge_opt textarea{min-height:100px;width:100%;}\ '); gu=document.createElement('div');gu.id='ge_uu'; gu.innerHTML='马甲
'; gu.style.display=GM_getValue('float',''); ul=gu.querySelector('ul'); ul.addEventListener('click',userSwitch,false); symbol=gu.querySelector('.ge_sym'); gu.pin=!!GM_getValue('ge_pin');pinUpdate(); symbol.onclick=function(){GM_setValue('ge_pin',gu.pin=!gu.pin);pin();}; gu.onmouseover=function(e){ if(this.contains(e.relatedTarget)) return; ul.classList.remove('ge_h'); if(gu.offsetLeft+gu.firstChild.offsetLeft+ul.offsetWidth<=document.body.offsetWidth) ul.style.pixelLeft=0; else ul.style.pixelLeft=document.body.offsetWidth-gu.offsetLeft-gu.firstChild.offsetLeft-ul.offsetWidth; };gu.onmouseout=function(e){if(!this.contains(e.relatedTarget)) ul.classList.add('ge_h');}; var d=GM_getValue('ge_users_loc',{});if(typeof d=='string') d=JSON.parse(d); document.body.appendChild(gu);locate(d);gu.moving=false; gu.firstChild.onmousedown=function(e){ e.preventDefault();e.stopPropagation(); if(e.target!=gu.firstChild||gu.moving) return;gu.moving=true; initLoc(); gu.x=e.pageX; gu.y=e.pageY; document.addEventListener('mousemove',mousemove,false); }; gu.onmouseup=function(e){ if(!gu.moving) return;gu.moving=false; e.preventDefault();e.stopPropagation(); document.removeEventListener('mousemove',mousemove,false); saveLoc(); }; initMenu(); } function initMenu(){ var d=[],i; for(i in users) d.push('
  • '+safeText(i)+'
  • '); d.push('
  • 管理马甲 | 登出
  • '); ul.innerHTML=d.join(''); } function initManage() { function addItem(i) { var d=document.createElement('div');d.className='ge_user'; d.innerHTML='
    '+safeText(i)+'
    '; dusers.appendChild(d); } popup=document.createElement('div'); popup.className='ge_popup ge_opt'; popup.innerHTML='\

    百度马甲切换不安全版

    \
    马甲管理 \ \
    \
    \
    马甲数据 \ (?)\
    \

    \ '; document.body.appendChild(popup); popup.addEventListener('click',function(e){e.stopPropagation();},false); var dmod=popup.querySelector('#gu_modify'),tdata=popup.querySelector('#gu_data'), tuser=popup.querySelector('#gu_user'),tpwd=popup.querySelector('#gu_pwd'),cur, dusers=popup.querySelector('#gu_users'); popup.querySelector('#gu_add').onclick=function(){ tuser.value=tpwd.value='';tuser.disabled=false; dmod.style.display='block';cur=null; }; dusers.onclick=function(e){ var t=e.target,d,u; if(t.tagName!='BUTTON') return; d=t.getAttribute('data');cur=t.parentNode.parentNode; u=cur.firstChild;u=u.innerText||u.textContent; if(d=='del') { delete users[u]; cur.parentNode.removeChild(cur); cur=null;saveAndUpdate(); } else if(d=='mod') { tuser.value=u;tuser.disabled=true; tpwd.value=users[u];dmod.style.display='block'; } }; dmod.onsubmit=function(e){ e.preventDefault(); var u=tuser.value,p=tpwd.value; if(!u||!p) return; if(cur) cur.firstChild.innerHTML=safeText(u); else addItem(u); users[u]=p;saveAndUpdate(); dmod.style.display='none';cur=null; }; popup.querySelector('#gu_cancel').onclick=function(e){ e.preventDefault(); dmod.style.display='none'; } tdata.onclick=function(){this.select();}; popup.querySelector('#gu_import').onclick=function(o){ try{ o=JSON.parse(unescape(window.atob(tdata.value))); }catch(e){o=null;} if(o&&o.version=='unsafe'&&o.users) { for(var i in o.users) users[i]=o.users[i]; saveAndUpdate();alert('导入成功!'); } else alert('导入失败!'); }; popup.querySelector('#gu_export').onclick=function(){ var data={version:'unsafe',users:users}; tdata.value=window.btoa(escape(JSON.stringify(data))); }; popup.querySelector('#gu_close').onclick=function(){popup.style.display='';}; showOptions=function(){ popup.style.display='block'; popup.style.top=(innerHeight-popup.offsetHeight)/2+'px'; popup.style.left=(innerWidth-popup.offsetWidth)/2+'px'; dusers.innerHTML=''; for(var i in users) addItem(i); }; } function init(){ var user=GM_getValue('ge_login'),pwd=null; users=GM_getValue('ge_users',{}); if(typeof users!='object') try{users=JSON.parse(users);}catch(e){users={}} if(location.href.substr(0,loginUrl.length)==loginUrl) { pwd=users[user]; if(pwd) { // TODO add mask } } if(user) GM_setValue('ge_login',''); if(pwd) window.addEventListener('load',function(){ document.querySelector('#TANGRAM__3__userName').value=user; document.querySelector('#TANGRAM__3__password').value=pwd; document.querySelector('#TANGRAM__3__submit').click(); },false); else window.addEventListener('DOMContentLoaded',function(){ if(window.top===window&&document.head) { initManage();buildMenu(); } },false); } var gu,ul,symbol,users,popup,showOptions,loginUrl='https://passport.baidu.com/v2/?login&u='; init();