// ==UserScript== // @name 网盘自动填写访问码【威力加强版】 // @description 智能融合网盘密码到网址中,打开网盘链接时不再需要手动复制密码,并自动提交密码,一路畅通无阻。同时记录网盘信息,当你再次打开该分享文件时,不再需要去找提取码,同时可追溯网盘地址的来源。 // @author 极品小猫 // @namespace https://greasyfork.org/zh-CN/users/3128 // @version 3.23.38 // // @include http://* // @include https://* // // @exclude https://*.12315.cn // @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 http*://*.evernote.com/* // @exclude http*://*.yinxiang.com/* // @exclude http*://mail.* // @exclude http*://ping.* // @exclude http*://whois.* // @exclude http*://inbox.google.com/* // @exclude https://www.12377.cn/* // @exclude /^https?://(localhost|10\.|192\.|127\.)/ // @exclude /https?://www.baidu.com/(?:s|baidu)\?/ // @exclude http*://www.zhihu.com/question/*/answers/created // @exclude https://caiyun.feixin.10086.cn/portal/index.jsp#myfile* // @require https://cdn.staticfile.org/jquery/2.1.4/jquery.min.js // @require https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js // @require https://greasyfork.org/scripts/35940-my-jquery-plugin/code/My%20jQuery%20Plugin.js?version=234478 // @supportURL https://scriptcat.org/script-show-page/373/issue // @homepage https://scriptcat.org/users/46868 // @icon https://eyun.baidu.com/box-static/page-common/images/favicon.ico // @connect agefans.tv // @grant unsafeWindow // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_listValues // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_notification // @grant GM_registerMenuCommand // @grant GM_info // @noframes // @encoding utf-8 // @run-at document-idle // @license GPL-3.0 License // ==/UserScript== (function(){ /* globals $ */ 'use strict'; let urls=location.href, hash=location.hash, host=location.hostname.replace(/^(?:www|pan)\.(?!baidu.com|xunlei.com)/i,'').replace(/([^.]+)\.(?=lanzou[a-z]?.com|ctfile.com)/,'').replace(/share\.(115.com)/i,'$1').toLowerCase(), hosts=location.hostname.toLowerCase(), search=location.search, paths=location.pathname.toLowerCase(), Control_newTag=true, // 网盘链接添加以新页面打开属性 u=unsafeWindow, msgControl=true; //信息日志关闭开关 host=host.replace(/^\w+\.(?=lanzou)/,'').replace(/(?<=lanzou)[a-z]?/i,'').replace(/\w+\.(?=ctfile.com)/, ''); //管理功能开关 & 设置 let CatPW_Manage_Config, // 管理功能配置,采用 GM_setValue API进行保存,非 localStorage StorageSave, // 信息记录功能,localStorage 记录密码开关 StorageExp, // localStorage 记录密码的有效期(天数) UpdataConfig={ UpdataSave:true, // 再次访问该网盘地址时,更新信息 UpdataNotify:true, // 更新该网盘地址时,发出桌面通知 UpdataPlugin:true, // 脚本更新后,发出桌面通知 UpdataVersion:GM_info.script.version //记录脚本的版本号 }; if(typeof(GM_getValue('CatPW_Manage'))==='undefined') { CatPW_Manage_Config={'StorageSave':true,'UpdataConfig':UpdataConfig,'StorageExp':365}; GM_setValue('CatPW_Manage', CatPW_Manage_Config); } else { CatPW_Manage_Config=GM_getValue('CatPW_Manage'); if(!CatPW_Manage_Config.UpdataConfig) { CatPW_Manage_Config.UpdataConfig=UpdataConfig; GM_setValue('CatPW_Manage', CatPW_Manage_Config); } if(!CatPW_Manage_Config.UpdataConfig.UpdataVersion) { CatPW_Manage_Config.UpdataConfig.UpdataVersion=GM_info.script.version; GM_setValue('CatPW_Manage', CatPW_Manage_Config); } } StorageSave=CatPW_Manage_Config.StorageSave; StorageExp=CatPW_Manage_Config.StorageExp; UpdataConfig=CatPW_Manage_Config.UpdataConfig; let Cat = { changelog : { "3.23.38" : { "date" : "2023.05.03", "info" : "点击浏览更新内容", "detail" : "【修复】123网盘无法正常提交访问码不断重复刷新问题" } }, UpdataPlugin : function(e){ //插件更新提示 let ScriptVersion=CatPW_Manage_Config.UpdataConfig.UpdataVersion, ScriptVersionArr=ScriptVersion.split('.'); let gmVersion=GM_info.script.version, gmVersionarr=gmVersion.split('.'); if(this.changelog[gmVersion]) { for(let i=0;iNumber(ScriptVersionArr[i])) { GM_notification({ 'title' : GM_info.script.name + ' 更新日志', 'text' : '本次更新内容(该消息仅提醒一次)'+'\n当期版本:'+gmVersion+'\n更新日期:'+this.changelog[gmVersion]['date']+'\n'+this.changelog[gmVersion]['info'], 'image' : 'https://eyun.baidu.com/box-static/page-common/images/favicon.ico', 'timeout' : 60*1000, 'onclick' : function(e){ alert(GM_info.script.name + ' 更新日志详细\r\n'+Cat.changelog[gmVersion]['detail']||Cat.changelog[gmVersion]['info']); } }); CatPW_Manage_Config.UpdataConfig.UpdataVersion=gmVersion; GM_setValue('CatPW_Manage', CatPW_Manage_Config); break; } } } else { alert('网盘自动填写密码【威力加强版】版本号信息与当前更新日志不符,无法显示更新提示。'); } }, init : function(){ this.UpdataPlugin();//更新提示 } }; Cat.init(); var site = { 'pwdRule' : /(?:提取|访问)[码碼]?\s*[::﹕ ]?\s*([a-z\d]{4})/, //常规密码 'codeRule' : /(?:(?:提取|访问|(?').attr({'class':'g-dropdown-button'})//.css({'width':'140px','position':'absolute','left':'-145px'}); let CatPW_Manage_A=$('').attr({'class':'g-button','data-button-id':'b300','data-button-index':'300','href':'javascript:void(0);'}); let CatPW_Manage_A_span=$(''); let CatPW_Manage_A_span_span=$('').text('密码填写管理'); let CatPW_Manage_Menu=$(''); let CatPW_Manage_Menu_infoFn=$('').text(StorageSave?'已开启信息记录功能':'已关闭信息记录功能').attr({'data-menu-id':'b-menu307'}).click(CatPW_Manage_Menu_Fn.infoFn); let CatPW_Manage_Menu_Exp=$('').text('信息保存时间:'+StorageExp+'天').attr({'data-menu-id':'b-menu308'}).click(CatPW_Manage_Menu_Fn.Exp); let CatPW_Manage_Menu_CleanInfo=$('').text('清除缓存记录信息').attr({'data-menu-id':'b-menu309'}).click(CatPW_Manage_Menu_Fn.CleanInfo); let CatPW_Manage_Menu_UpdataSave=$('').text(UpdataConfig.UpdataSave?'已开启记录更新功能':'已关闭记录更新功能').attr({'data-menu-id':'b-menu310'}).click(CatPW_Manage_Menu_Fn.UpdataConfigFn.UpdataSave); let CatPW_Manage_Menu_UpdataNotify=$('').text(UpdataConfig.UpdataNotify?'已开启网盘信息通知':'已关闭网盘信息通知').attr({'data-menu-id':'b-menu311'}).click(CatPW_Manage_Menu_Fn.UpdataConfigFn.UpdataNotify); let CatPW_Manage_Menu_UpdataPlugin=$('').text(UpdataConfig.UpdataPlugin?'已开启脚本更新通知':'已关闭脚本更新通知').attr({'data-menu-id':'b-menu313'}).click(CatPW_Manage_Menu_Fn.UpdataConfigFn.UpdataPlugin); let CatPW_Manage_Menu_MessageUI=$('').text(UpdataConfig.MessageUI?'切换为浮动式网盘信息':'切换为嵌入式网盘信息').attr({'data-menu-id':'b-menu314'}).click(CatPW_Manage_Menu_Fn.UpdataConfigFn.MessageUI); CatPW_Manage_A.append(CatPW_Manage_A_span); CatPW_Manage_A_span.append(CatPW_Manage_A_span_span); CatPW_Manage_Menu.append(CatPW_Manage_Menu_infoFn, CatPW_Manage_Menu_Exp, CatPW_Manage_Menu_CleanInfo, '
', CatPW_Manage_Menu_UpdataSave, CatPW_Manage_Menu_UpdataNotify, CatPW_Manage_Menu_UpdataPlugin, CatPW_Manage_Menu_MessageUI); CatPW_Manage_Main.insertBefore('.x-button-box>.g-button.tools-share-save-hb'); CatPW_Manage_Main.append(CatPW_Manage_A).append(CatPW_Manage_Menu).hover(function(){ CatPW_Manage_Main.toggleClass('button-open'); }); //GM_addStyle('.slide-show-right{width:650px!important;}'); }, ShowInfo : function(){ //显示信息记录 var CatPW_Info_Display=$('#CatPW_Info').css('display'); if(CatPW_Info_Display) { if(CatPW_Info_Display=='none') $('#CatPW_Info').css('display','block'); else $('#CatPW_Info').css('display','none'); } else if(StorageSave){ //插入信息记录 var yunData=unsafeWindow.yunData, //取得 yunData 数据 CatPW, CatPW_Format={'date':Dates(),'sCode':'', unPW:'', 'Src':'', 'surl':'', 'Hash':'', "webSrc":'', "webTitle":''}; //初始化信息记录变量 yunData.surl=getQueryString('surl')||location.pathname.replace('/s/1','').replace(/#.+/,''); //获取当前的分享ID,并添加到 yunData 中 yunData.Src=getQueryString('Src')||location.href.replace(location.search,''); //初始化 getValue 数据 if(typeof(GM_getValue('CatPW'))==='undefined') { if(StorageDB('Share_'+yunData.surl).read()) GM_setValue('CatPW', StorageDB('Share_'+yunData.surl).read()); else GM_setValue('CatPW', CatPW_Format); //初始化 } var isCatPW=GM_getValue('CatPW').Src.search(yunData.surl)>0; //检查当前网盘地址是否与记录匹配 var isCatPW_DB=StorageDB('Share_'+yunData.surl).read(); CatPW=isCatPW?GM_getValue('CatPW'):isCatPW_DB?isCatPW_DB:CatPW_Format; //取得信息记录 CatPW.Src=urls.replace(hash,''); CatPW.surl='Share_'+yunData.surl; //获取 分享文件surl CatPW.unPW=decodeURIComponent(CatPW.unPW); CatPW.webSrc=decodeURIComponent(CatPW.webSrc); CatPW.webTitle=decodeURIComponent(CatPW.webTitle); CatPW.sCode=CatPW.sCode||(CatPW.Hash?CatPW.Hash.replace('#',''):/^#/.test(hash)&&!/^#list\/path=/i.test(hash)?hash.match(/^#([^&]+)&?/)[1]:''); //获取 提取码 if(!localStorage[CatPW.surl]) { //当不存在记录时,收集信息 msg('不存在记录,插入信息', 'Src:'+CatPW.Src, 'surl:'+yunData.surl, CatPW); if(CatPW.Src.search(yunData.surl)<0) {//新记录中的网盘地址与当前的分享ID不一致时,更新信息记录变量 CatPW.Src=urls.replace(hash,''); CatPW.Hash=hash; CatPW.sCode=CatPW.sCode; CatPW.unPW=CatPW.webTitle=CatPW.webSrc=''; //当前网址与记录的信息不符时,只保留密码信息 } CatPW.ShareUK=yunData.SHARE_UK; //获取 分享用户ID CatPW.ShareID=yunData.SHARE_ID; //获取 分享文件ID StorageDB(CatPW.surl).insert(CatPW); } else if(UpdataConfig.UpdataSave && localStorage[CatPW.surl] &&//是否已开启网盘信息记录更新,是否存在缓存 CatPW.Src.search(StorageDB(CatPW.surl).read().surl.replace('Share_',''))>0)//从检测缓存中的分享ID是否与记录中的分享ID匹配 { var CatPW_StorageDB=StorageDB(CatPW.surl).read(); if(decodeURIComponent(CatPW.webSrc)!==decodeURIComponent(CatPW_StorageDB.webSrc)) { CatPW_StorageDB.webSrc=decodeURIComponent(CatPW.webSrc); CatPW_StorageDB.webTitle=decodeURIComponent(CatPW.webTitle); StorageDB(CatPW.surl).insert(CatPW_StorageDB); if(UpdataConfig.UpdataNotify) GM_notification({ 'text':'网盘地址来源与上一次记录不同,记录已更新', 'title':'网盘信息记录更新通知', 'image':'https://eyun.baidu.com/box-static/page-common/images/favicon.ico', 'timeout': 1.5*1000 }); } } else {//直接载入记录 msg('载入 locatStorage 记录'); CatPW=StorageDB(CatPW.surl||yunData.SHARE_ID||getQueryString('shareid')).read(); } msg('分享文件ID:', CatPW.surl, '提取码:', StorageDB(CatPW.surl).find('sCode')); msg('已收集的信息:', 'conf:', conf, 'localStorage CatPW:', CatPW, 'GM CatPW: ', GM_getValue('CatPW')); $(conf.btn).on('mouseup', function(e){ //百度网盘访问码提交事件,提交密码时 var $code=$(conf.code).val().trim(); if($code.search(/\*/)>0) return false; if($code!=='' && !CatPW.sCode){ CatPW.sCode=$code; } var tips=$('form[name="accessForm"]~div[style*="display: block"]'); tips.text('') //提取码提交click事件 if(!localStorage[CatPW.surl]) { //不存在记录时,添加新纪录 StorageDB(CatPW.surl).insert(CatPW);//插入记录 StorageDB('ShareIDexp').add(CatPW.surl,{'date':Dates(),'id':CatPW.surl,'exp':$.now()+StorageExp*24*60*60*1000}); //记录超时时间 } else if(!StorageDB(CatPW.surl).find('sCode')) { //不存在提取码信息时,重新获取提取码 StorageDB(CatPW.surl).insert(CatPW);//插入记录 StorageDB('ShareIDexp').add(CatPW.surl,{'date':Dates(),'id':CatPW.surl,'exp':$.now()+StorageExp*24*60*60*1000}); //记录超时时间 } else if($code!==StorageDB(CatPW.surl).find('sCode')&&(tips.text()==='')){ //已记录的提取码与填写的提取码不一致时,更新提取码记录 StorageDB(CatPW.surl).add('sCode', CatPW.sCode);//更新提取码记录 StorageDB('ShareIDexp').add(CatPW.surl,{'date':Dates(),'id':CatPW.surl,'exp':$.now()+StorageExp*24*60*60*1000}); //记录超时时间 } }); //当存在解压密码时,插入新纪录 if(CatPW.unPW&&!localStorage[CatPW.surl]){ StorageDB(CatPW.surl).insert(CatPW); StorageDB('ShareIDexp').add(CatPW.surl,{'date':Dates(),'id':CatPW.surl,'exp':$.now()+StorageExp*24*60*60*1000}); //记录超时时间 } //显示记录的信息 if('Share_'+yunData.surl==CatPW.surl && localStorage[CatPW.surl]){ let baiduPan_API={ //API: require('system-core:context/context.js').instanceForSystem.list.getCurrentList(), //server_Filename: i => {return baiduPan_API.API[i||0].server_filename;} } let CatPW_Data={ //FileName: $('').text('FileName:').append($('').text(baiduPan_API.server_Filename())) } var CatPW_Info=$('
').attr('id','CatPW_Info').text('提取码:'+CatPW.sCode+'  '+'解压密码:'); //解压密码 var CatPW_Info_unPW=$('').attr({'id':'unPW','title':'点击复制密码,修改内容将被保存'}).css({'margin':'0 10px','width':'150px','text-align':'center'}).val(CatPW.unPW).change(function(){ StorageDB(CatPW.surl).add('unPW',encodeURIComponent(this.value)); CatPW.unPW=encodeURIComponent(this.value); GM_setValue('CatPW', CatPW); }).click(function(){ document.execCommand("SelectAll");document.execCommand("copy"); }); //来源页面: var CatPW_Info_delBtn=$('