您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
免掉百度网盘写密码的麻烦,包括解析短网址和跳转链接,多链接支持
当前为
- // ==UserScript==
- // @name Free Yun Keys
- // @name:zh 免密百度网盘
- // @namespace http://zszen.github.io/
- // @version 6.1
- // @description 免掉百度网盘写密码的麻烦,包括解析短网址和跳转链接,多链接支持
- // @author Zszen John
- // @grant GM.getValue
- // @grant GM.setValue
- // @grant GM.deleteValue
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_xmlhttpRequest
- // @match https://www.lookae.com/*
- // @match https://www.soft5566.com/*
- // @match https://pan.baidu.com/*
- // @include https://*
- // @include http://*
- // @note 2021.03-07 v6.0 优化了解析,准确解析lookae和ali213,其他的网站暂时使用父级搜索
- // @note 2020.07-26 v5.0 添加回对二次跳转的非百度云链接进行解析
- // @note 2020.07-24 v4.0 支持自动下载,可按钮切换
- // @note 2020.07-23 v3.0 修复错误, 去掉jquery
- // @note 2020.07-21 v1.0 初步支持自动跳转,自动解析链接
- // ==/UserScript==
- (function() {
- 'use strict';
- var label = 'Zszen '
- var isAutoDownload = true;
- var regexp_codeback = /#([a-zA-Z0-9]{4})/
- //var regexp_code = /(码|问)[\s|:|:]*([a-zA-Z0-9]{4})/
- var regexp_code = /(提取码|密码)[\s|:|:]*([a-zA-Z0-9]{4})/
- var regexp_url = /(https:\/\/pan.baidu.com\/.*?\/(\d|\w|-)+)/
- var url = window.location.href;
- var res = /\/\/(.+?\..*?)(\/|\?)/.exec(url);
- var site = res[1];
- if(site=="pan.baidu.com"){//parse
- var pss = regexp_codeback.exec(url);
- var inputs = ELs('input');
- var as = ELs('a', el=>el.textContent.indexOf('提取文件')>=0);
- if(pss!=null && pss.length>1 && inputs.length>0 && as.length>0){
- console.log(label,'pan get');
- inputs[0].value = pss[1];
- as[0].click()
- }else{
- console.log(label,'pan download');
- //<a class="g-button" data-button-id="b7" data-button-index="4" href="javascript:;" title="举报"><span class="g-button-right"><span class="text" style="width: auto;">举报</span></span></a>
- //ELs('a',el=>{return el.title=='举报'}, el=>el.style.display = 'none');
- var check_simbols = ['x','v']
- ELs('a',el=>{return el.title.indexOf('保存到手机')>=0}, el=>{
- var bl = GM_getValue("auto_download")
- var a = document.createElement('a');
- a.className = 'g-button autodownload'
- a.href="javascript:;"
- a.title="["+check_simbols[bl?1:0]+"]自动下载";
- var span = document.createElement('span')
- span.className = 'g-button-right'
- a.appendChild(span)
- var span2 = document.createElement('span')
- span2.className = 'text'
- span2.style.width = 'auto'
- span.appendChild(span2);
- span2.textContent = a.title
- el.parentElement.insertBefore(a, el.nextElementSibling)
- //
- a.addEventListener('click',()=>{
- var bl = GM_getValue("auto_download")
- if(bl==null)bl=false;
- bl = !bl;
- GM_setValue("auto_download", bl)
- a.title="["+check_simbols[bl?1:0]+"]自动下载";
- span2.textContent = a.title
- });
- })
- setTimeout(()=>{
- var bl = GM_getValue("auto_download")
- if(bl!=true){
- return;
- }
- var ads = ELs('a', el=>{return el.title=='下载'});
- if(ads.length>0){
- var sels = ELs('span', el=>el.className == 'EOGexf');
- for(var i=0; i<sels.length; i++){
- sels[i].click();
- }
- ads[0].click();
- }else{
- ELs('a', el=>{return el.title.indexOf('下载')>=0})[0].click();
- }
- }, 1000);
- }
- }else{//deal
- console.log(label,'pan find');
- ELs('a',
- (el)=>{
- if(!regexp_url.test(el.href)){
- return false;
- }
- var res = false;
- try{
- res = regexp_code.test(el.parentElement.textContent)
- if(res)return res;
- }catch(e){
- }
- try{
- res = regexp_code.test(el.textContent)
- if(res)return res;
- }catch(e){
- }
- try{
- res = regexp_code.test(el.nextSibling.textContent)
- if(res)return res;
- }catch(e){
- }
- return false;
- },
- el=>{
- //var ps = regexp_code.exec(el.parentElement.textContent)
- var ps = [];
- if(site=="www.lookae.com"){//parse
- ps = regexp_code.exec(el.nextSibling.textContent)
- }else if(site=="www.soft5566.com"){//parse ali213
- ps = regexp_code.exec(el.textContent)
- }else{
- ps = regexp_code.exec(el.textContent);
- if(ps.length<3){
- ps = regexp_code.exec(el.nextSibling.textContent);
- }
- if(ps.length<3){
- ps = regexp_code.exec(el.parentNode.textContent);
- }
- }
- if(ps.length>=3){
- if(regexp_url.test(el.href)){
- el.href=el.href+'#'+ps[2]
- }else{
- GM_xmlhttpRequest({
- method: "GET",
- url: el.href,
- onload: (res)=>{
- //console.log(res.responseText);
- var urls = regexp_url.exec(res.responseText);
- if(urls && urls.length>1){
- el.href=urls[1]+'#'+ps[2];
- }
- }
- });
- }
- }
- });
- }
- //
- function ELs(tagName, conditionFun, dealFun, parent){
- if(parent==null) parent = document;
- var tags = [...parent.getElementsByTagName(tagName)];
- if(conditionFun){
- tags = tags.filter(conditionFun);
- }
- if(dealFun){
- tags.forEach(dealFun);
- }
- return tags;
- }
- //DivMaker('<a class="aaa" href="123">asdfasdf <h1></a>', 'height:100px', 'a.aaa { color: green; }')
- function DivMaker(innerHtml, styleString, cssString){
- var divNode = document.createElement("div");
- divNode.innerHTML = innerHtml;
- document.body.appendChild(divNode);
- if(styleString){
- divNode.style = styleString;
- }
- if(cssString){
- var style = document.createElement('style');
- style.appendChild(document.createTextNode(cssString));
- divNode.appendChild(style);
- }
- }
- })();