// ==UserScript== // @name 网盘自动填写密码【威力加强版】 // @description 网盘自动填写提取密码【增强版】的基础上增加信息提取及保存功能。 // @author 极品小猫 // @namespace https://greasyfork.org/zh-CN/users/3128 // @version 3.1.5.2 // @date 2015.10.30 // @modified 2017.07.19 // // 支持的网盘 // @include http://pan.baidu.com/s/* // @include http://eyun.baidu.com/s/* // @include http://* // @include https://* // // 白名单 // @exclude http*://*.pcs.baidu.com/* // @exclude http*://*.baidupcs.com/* // @exclude http*://*:8666/file/* // @exclude http*://*.baidu.com/file/* // @exclude http*://index.baidu.com/* // // @exclude http*://*.gov/* // @exclude http*://*.gov.cn/* // @exclude http*://*.taobao.com/* // @exclude http*://*.tmall.com/* // @exclude http*://*.alimama.com/* // @exclude http*://*.jd.com/* // @exclude http://*.zol.com.cn/* // @exclude http://*.ctrip.com/* // @exclude https://*.evernote.com/* // @exclude https://*.yinxiang.com/* // @exclude /^https?://(localhost|10\.|192\.|127\.)/ // @exclude /https?://www.baidu.com/(?:s|baidu)\?/ // @exclude http*://www.zhihu.com/question/*/answers/created // require http://code.jquery.com/jquery-2.1.4.min.js // @require http://cdn.staticfile.org/jquery/2.1.4/jquery.min.js // @supportURL https://greasyfork.org/zh-CN/scripts/29762/feedback // @icon https://eyun.baidu.com/box-static/page-common/images/favicon.ico // @grant unsafeWindow // @grant GM_setValue // @grant GM_getValue // @grant GM_listValues // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @encoding utf-8 // @run-at document-idle // @downloadURL none // ==/UserScript== var urls=location.href; var hash=location.hash; var host=location.hostname.replace(/^www\./i,'').toLowerCase(); var paths=location.pathname.toLowerCase(); //功能开关 & 设置 var StorageSave=true; //信息记录功能, localStorage 记录密码开关,true 为启用,false 为关闭 //-----------------------------建议开启,该功能可在再次打开没有密码融合的网盘链接时,从记录中读取“提取码”,从而让你在无法找回提取码时访问网盘 var StorageExp=7; // localStorage 记录密码的有效期 var newTag=true; // 网盘链接添加以新页面打开属性 unsafeWindow.eve = Event; //GM_listValues(); /* * 更新日志 * * 3.1.5.1 * 1、【白名单】增加中关村网站 * 2、【修正】没有获取到密码时,瞎填写密码 * 3、【支持】qiuquan.cc 密码融合 * * 3.1.5 * 1、【修正】关闭信息记录时,仍然会显示记录的信息 * 2、【修正】关闭信息记录时,提取码无法自动提交的问题 * 3.1.4 * 1、【修正】reimu.net 特殊融合兼容性问题 * 2、【修正】不兼容中文提取码自动填写 * 3、【修正】信息记录没有提取码的问题 * * 3.1.3.1 * 1、【删除】shaoit.com 密码融合处理规则 * * 3.1.3 * 1、【增强】度盘在点击时设置为新页面打开(可开关),参数变量为 newTag * 2、【修正】表格中提取密码为下一行表格的BUG * 3、【修正】gov.cn、gov的域名默认为白名单 * * 3.1.2 * 1、【增强】解压密码提取,增加“压缩密码”关键字 * 2、【修正】pan.baidu.com 解压密码获取错误 * 3、【修正】Firefox 浏览器 GM插件 的兼容性问题 * 4、【修正】其它小BUG * * 3.1.1.1 * 1、特殊支持网站,增加 小众软件论坛 * * 3.1.1 * 1、修正解压密码内容处理导致提取码提取失效BUG * 2、修正网盘信息显示BUG * * 3.1.0 * 1、增强提取码匹配规则,提高匹配成功率 * 2、localStorage 信息记录 传递方式改为使用 GM_setValue、GM_getValue API * 3、无提取码,但有解压密码,也将进行信息记录 * * 3.0.0 (内部测试) * 1、使用 localStorage 记录密码等信息,默认记录 7 天 * 2、增强“解压密码”提取规则 * 3、打开已记录网盘时,若URL中无提取码,可从记录中读取提取码 * * 2.5.2.3 * 1、MAD素材库(madsck.com)密码融合特殊支持 * 2、修复 huhupan.com 的密码融合支持 * * 2.5.2.2 - 未删除 * 1、删除知乎跳转链处理代码 * * 2.5.3 * 1、次元轨迹(acg44.com)密码融合处理 * 2、修正“解压密码”的误识别 * 3、Cookie 记录密码,保存7天 * * 2.5.2.1 * 1、讯影网(xunyingwang.com)密码融合处理 * 2、户户盘(huhupan.com)密码融合处理 * * 2.5.1 * 1、殁漂遥(shaoit.com)密码融合处理改进 * * 2.5.0 * 1、提升密码融合能力 * * 2.4.2 【2016.10.05】 * 1、殁漂遥(shaoit.com)密码融合处理 * 2、reimu.net 密码融合处理 * 3、修复“跳转链处理”影响百度企业盘无法访问问题 * * 2.4.1.2 【2016.09.28】 * 1、增加 sijihuisuo.club 的跳转链处理 * 2、增加本地IP白名单 * * 2.4.1.1 【2016.09.21】 * 1、增加携程网白名单 * * 2.4.1 【2016.09.21】 * 1、支持一些特殊网站的密码融合预处理 * 2、支持百度企业云的密码自动提交(企业盘的密码为4~14位) * 3、支持 www.0dayku.com 的提取码关键字“Extracted-code” * * 2.3.3 【2016.08.08】 * 1、知乎跳转链预处理 * * 2.3.2 【2016.08.04】 * 1、恢复提取码中的“密码”关键字(适用于:心海e站) * * 2.3.1 【2016.08.03】 * 1、增加微云网盘提取码支持(匹配规则来自原作者 Jixun.Moe) * 2、修正提取码兼容问题 * 3、修正重复添加提取码 * * 2.3.0 【2016.08.01】 * 1、移除对金山快盘、新浪云盘的支持 * 2、百度企业云盘不追加验证码 * 3、受贴吧页面跳转影响,暂时不支持贴吧的密码提取,已将贴吧加入白名单 * 4、提升链接&密码融合的成功率 —— A 标签绑定函数更改为 body 点击事件监听(根据原作者 Jixun.Moe 的建议) * 5、找不到密码时的遍历方式更改(感谢 10139 - mudoo 的建议) * 6、支持密码放在换行表格中的提取 */ var site = { 'YunDisk':{ 'pan.baidu.com':{ ShareID : getQueryString('shareid'), chk: /^[a-z0-9]{4}$/, code: '#accessCode', btn: '#submitBtn,#getfileBtn', PreProcess: function() { //已处理 if(StorageSave){ if(GM_getValue('CatPW')=='undefined') GM_setValue('CatPW',{}); //初始化 //window.history.pushState('state', 'title', hash.replace(/#list\/path=.+/i,'#')); var CatPW, yunData=unsafeWindow.yunData; if(!localStorage[yunData.SHARE_ID]){ CatPW=GM_getValue('CatPW'); CatPW.ShareUK=yunData.SHARE_UK||getQueryString('uk'); //获取 分享用户ID CatPW.ShareID=yunData.SHARE_ID||getQueryString('shareid'); //获取 分享文件ID var Qstr=CatPW.ShareStr=/Src=/i.test(hash)?hash:location.search; //网址参数提取 } else { CatPW=StorageDB(yunData.SHARE_ID||getQueryString('shareid')).read(); } //提交密码前 CatPW.sCode=StorageDB(CatPW.ShareID).find('sCode')||(GM_getValue('CatPW').Hash?GM_getValue('CatPW').Hash.replace('#',''):/^#/.test(hash)&&!/^#list\/path=/.test(hash)?hash.match(/^#([^&]+)&?/)[1]:''); //获取 提取码 console.log(CatPW.ShareID,StorageDB(CatPW.ShareID).find('sCode')) CatPW.webSrc=decodeURIComponent(getQueryString('webSrc',Qstr)||StorageDB(CatPW.ShareID).find('webSrc')||GM_getValue('CatPW').webSrc); CatPW.unPW=decodeURIComponent(getQueryString('unPW',Qstr)||(StorageDB(CatPW.ShareID).find('unPW')?StorageDB(CatPW.ShareID).find('unPW'):(GM_getValue('CatPW').unPW?GM_getValue('CatPW').unPW:''))); CatPW.webTitle=decodeURIComponent(getQueryString('webTitle',Qstr)||StorageDB(CatPW.ShareID).find('webTitle')||GM_getValue('CatPW').webTitle); CatPW.date=Dates(); console.log(conf,CatPW); $(conf.btn).click(function(){ //提交密码时 if(StorageSave) { CatPW.sCode=!CatPW.sCode?$(CatPW.code).val().trim()!=''?$(CatPW.code).val().trim():CatPW.sCode:CatPW.sCode; //如果 localStorage 没有密码,则重新手动记录 } if(!localStorage[CatPW.ShareID]&&(CatPW.sCode&&($('#tip').css('display')=='none')||$('#tip').text()=='')) { //如果不存在记录时,且没有任何提示信息时 StorageDB(CatPW.ShareID).insert(CatPW); StorageDB('ShareIDexp').add(CatPW.ShareID,{'date':Dates(),'id':CatPW.ShareID,'exp':$.now()+StorageExp*24*60*60*1000}); //记录超时时间 } else if(CatPW.sCode&&$('#tip').css('display')=='none'){ StorageDB('ShareIDexp').add(CatPW.ShareID,{'date':Dates(),'id':CatPW.ShareID,'exp':$.now()+StorageExp*24*60*60*1000}); //记录超时时间 } else if($('#tip').text()=='密码错误'){ delete localStorage[CatPW.ShareID]; StorageDB('ShareIDexp').delete(CatPW.ShareID); //删除超时时间记录 } }); if(CatPW.unPW&&!localStorage[CatPW.ShareID]){ StorageDB(CatPW.ShareID).insert(CatPW); StorageDB('ShareIDexp').add(CatPW.ShareID,{'date':Dates(),'id':CatPW.ShareID,'exp':$.now()+StorageExp*24*60*60*1000}); //记录超时时间 } //显示记录的信息 if(localStorage[CatPW.ShareID]){ $('