Greasy Fork

来自缓存

轻之国度百度盘无提取码跳转

在发布的百度网盘链接后添加一个无提取码跳转的链接,需要安装“<a>百度盘分享提取码自动跳转</a>”脚本,否则无法自动输入提取码。由于轻之国度发布者分享链接无固定格式,故可能无法识别到。如果无法识别,请将链接反馈给我,我将尽量适配。

当前为 2020-12-01 提交的版本,查看 最新版本

// ==UserScript==
// @name         轻之国度百度盘无提取码跳转
// @namespace    http://tampermonkey.net/
// @version      1.0.2
// @update       2020.11.02
// @description  在发布的百度网盘链接后添加一个无提取码跳转的链接,需要安装“<a>百度盘分享提取码自动跳转</a>”脚本,否则无法自动输入提取码。由于轻之国度发布者分享链接无固定格式,故可能无法识别到。如果无法识别,请将链接反馈给我,我将尽量适配。
// @author       charghet
// @grant        none
// @license GPL
// @include https://www.lightnovel.us/detail/*
// @require https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js
// ==/UserScript==

(function() {
    $(function(){
       var urls = document.getElementsByTagName('a');
       for(var i = 0;i < urls.length;i++){
           var index = -1;
           if((index = urls[i].href.indexOf("pan.baidu.com/s/")) != -1){
               var href = urls[i].href;
               var id = href.substring(index+17,href.length);
               var node = urls[i].parentNode.childNodes;
               for(var j = 0;j < node.length;j++){
                   if(node[j] == urls[i]){
                       break;
                   }
               }
               var pwd = '';
               if(j != node.length){
                   var a = document.createElement('a');
                   a.target = "_blank";
                   a.innerText = '无提取码跳转';
                   a.href = "https://pan.baidu.com/share/init?surl="+id+"&pwd=";
                   var n = -1;
                   //提取码跟在链接后
                   try{
                       var s = node[j+1].data;
                       if((n = s.search(/[A-z0-9]{4}/)) != -1 && s.replace(/[A-z0-9]{4}/,'').search(/[A-z0-9]/) == -1){
                           pwd = s.substring(n,n+4);
                           a.href += pwd;
                           urls[i].parentNode.insertBefore(a,node[j+2]);
                           continue;
                       }
                   }catch(e){};
                   //提取码为链接名
                   s = urls[i].innerText;
                   if((n = s.search(/[A-z0-9]{4}/)) != -1 && s.replace(/[A-z0-9]{4}/,'').search(/[A-z0-9]/) == -1){
                       pwd = s.substring(n,n+4);
                       a.href += pwd;
                       if(j+1 == node.length){
                           urls[i].parentNode.appendChild(a);
                       }else{
                           urls[i].parentNode.insertBefore(a,node[j+1]);
                       }
                   }
               }
           }
       }
    })
})();