Greasy Fork is available in English.

naifei+

显示一个直达naifei.cc的按钮,支持提取码链接,可配合自动填写提取码脚本使用

La data de 11-07-2020. Vezi ultima versiune.

// ==UserScript==
// @name         naifei+
// @namespace    https://greasyfork.org/zh-CN/users/176664
// @version      20.07.11.19
// @description  显示一个直达naifei.cc的按钮,支持提取码链接,可配合自动填写提取码脚本使用
// @author       cnhong
// @match        *://pan.baidu.com/s/*
// @match        *://pan.baidu.com/share/*
// @match        *://yun.baidu.com/s/*
// @match        *://pan.naifei.cc/*
// @grant        none
// @run-at       document-idle
// @modified	 20.07.11.19 优化提取码相关提示
// @modified	 20.07.11.18 增加提取码暂存失败提示
// @modified	 20.07.11.17 修复带提取码链接无法自动识别提取码的bug
// ==/UserScript==

(function() {
    'use strict';
	loadJq();
	function main(){
		switch(document.domain){
			case "pan.baidu.com":
				baidu();
				break;
			case "pan.naifei.cc":
				naifei();
				break;
		}
	}
	function getShare(){
		var h = location.href, s="";
		if(h.indexOf('com/s/')>0){
			s = h.split("com/s/")[1];
		}else if(GET('surl')){
			s = GET('surl');
		}
		if(s&& s.indexOf('#')>0){
			s = s.split("#")[0];
		}
		
		return s;
	}
	function getPwd(){
		if(location.hash !="" && location.hash.length==5){
			return location.hash.replace("#","");
		}
	}
	function GET(key) {
		var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)", "i");
		var r = window.location.search.substr(1).match(reg);
		if (r != null)
			return decodeURI(r[2]);
		return null;
	}
	function baidu(){
		var pwdBtn = $('#submitBtn');
		
		var share = getShare(), pwd = getPwd();
		if(!share){alert("解析shareId失败!可联系脚本作者");return false;}
		if(pwdBtn.length>0){ 
			if(pwd){
				$('.pickpw input').val(pwd);
				setCookie(share, pwd,1);
				setTimeout(function(){
					$("#submitBtn").trigger("click");
				},1000);
			}
			$(".pickpw input").on("change",function(){
				pwd = $('.pickpw input').val().trim();
				setCookie(share, pwd,1);
			});
			return;
		}
		var _cnhong_u = getCookie(share)||getCookie(share.substring(1)), url = share;
		
		if(_cnhong_u){pwd = _cnhong_u;}
		if(pwd){url += "&pwd="+pwd;}
		if(url){
			var btn = '<a class="g-button" data-button-id="b8" data-button-index="2" href="http://pan.naifei.cc/?share='+url+'" target="_blank" title="直达naifei"><span class="g-button-right"><em class="icon icon-save-disk" title="直达naifei"></em><span class="text" style="width: auto;">直达naifei</span></span></a>';
			$(".x-button-box").prepend(btn);
			$('a[data-button-id="b7"]').hide();
			$('a[data-button-id="b5"]').hide();
		}
	}
	function loadJq(){
		if(typeof($)=="undefined"){
			loadJS("https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js", main);
		}else{
			main();
		}
	}
	function loadJS( url, callback ){
		var script = document.createElement('script'),
			fn = callback || function(){};
		script.type = 'text/javascript';
		script.onload = function(){
			fn();
		};
		script.src = url;
		document.getElementsByTagName('head')[0].appendChild(script);
	}
	function loadCSS(url){
		var script = document.createElement('link');
		script.rel = 'stylesheet';
		script.href = url;
		document.getElementsByTagName('head')[0].appendChild(script);
	}
	function setCookie(n,v,t)
	{
		var d = new Date();
		d.setTime(d.getTime()+(t*24*60*60*1000));
		t = "expires="+d.toGMTString();
		document.cookie = n + "=" + v + "; " + t+"; path=/;";
	}
	function getCookie(n)
	{
		n = n + "=";
		var ca = document.cookie.split(';');
		for(var i=0; i<ca.length; i++) 
		{
			var c = ca[i].trim();
			if (c.indexOf(n)==0) return c.substring(n.length,c.length);
		}
		return "";
	}
	function naifei(){
		loadCSS('https://cdn.staticfile.org/weui/1.1.2/style/weui.min.css');
		loadCSS('https://cdn.staticfile.org/jquery-weui/1.2.0/css/jquery-weui.min.css');
		loadJS('https://cdn.staticfile.org/jquery-weui/1.2.0/js/jquery-weui.min.js',wait);
	}
	function wait(){
		$.showLoading("解析中...");
		var interval = setInterval(function(){
			var flag = $("tr").length;
			if(flag>=1){
				$.hideLoading();
				clearInterval(interval);
				if(flag>1){
					$.toast("解析成功");
					return;
				}else{
					if(GET("pwd")&&GET("pwd").length==4){
						$.toast("解析失败<br>建议刷新", "cancel");
					}else{
						inputCode();
					}
				}
			}	
		}, 1000);
	}
	function inputCode(){
		$.prompt({
          text: "<section style='text-align:left;'>1.可能解析失败,可以刷新一下<br>2.可能需要输入提取码</section>",
          title: "解析内容为空!",
          onOK: function(text) {
			var url=location.href.replace(/&pwd=[0-9a-zA-Z]+/, "&pwd="+text);
			location.href=url;
          },
          onCancel: function() {
            console.log("取消了");
          },
          input: ''
        });
	}
})();