// ==UserScript== // @name 网盘自动填写密码【威力加强版】 // @description 网盘自动填写提取密码【增强版】的基础上增加信息提取及保存功能。 // @author 极品小猫 // @namespace https://greasyfork.org/zh-CN/users/3128 // @version 3.1.1.1 // @date 2015.10.30 // @modified 2017.05.22 // // 支持的网盘 // @include http://* // @include https://* // @include http://pan.baidu.com/s/* // @include http://eyun.baidu.com/s/* // // 白名单 // @exclude http*://*.pcs.baidu.com/* // @exclude http*://*.baidupcs.com/* // @exclude http*://*:8666/file/* // @exclude http*://*.baidu.com/file/* // // @exclude http*://*.taobao.com/* // @exclude http*://*.tmall.com/* // @exclude http*://*.alimama.com/* // @exclude http*://*.jd.com/* // @exclude http*://s.360.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 // @grant unsafeWindow // @grant GM_setValue // @grant GM_getValue // @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 记录密码的有效期 unsafeWindow.eve = Event; /* * 更新日志 * 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() { //已处理 window.history.pushState('state', 'title', hash.replace(/#list\/path=.+/i,'#')); if(!localStorage[yunData.SHARE_ID]){ var 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(); } //提交密码前 if(StorageSave){ CatPW.sCode=yunData.sCode=(/^#/.test(hash)?hash.match(/^#(\w+)&?/)[1]:StorageDB(CatPW.ShareID).find('sCode')||GM_getValue('CatPW').Hash.replace('#','')); //获取 提取码 CatPW.webSrc=yunData.webSrc=decodeURIComponent(getQueryString('webSrc',Qstr)||StorageDB(CatPW.ShareID).find('webSrc')||GM_getValue('CatPW').webSrc); CatPW.unPW=yunData.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=yunData.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(){ //提交密码时 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]){ $('