论坛网盘链接免密提取

激活网盘链接,同时自动填写密码,支持绝大多数Discuz论坛,zd423网站

As of 2017-08-20. See the latest version.

// ==UserScript==
// @name        论坛网盘链接免密提取
// @namespace   http://xhunter.vicp.io
// @description 激活网盘链接,同时自动填写密码,支持绝大多数Discuz论坛,zd423网站
// @include     http*://www.52pojie.cn/forum*
// @include     http*://www.52pojie.cn/thread*
// @include     *://pan.baidu.com/share/init?shareid=*
// @include     http*://bbs.zhiyoo.com/forum.php*
// @include     http*://www.right.com.cn/forum/*
// @include     http*://www.zdfans.com/*
// @version     1.0.2
// @author      hunter
// @require     http://cdn.bootcss.com/jquery/2.2.4/jquery.min.js
// ==/UserScript==
(function() {
	function activiteLink($dom, linkList) {
		var docu = $dom.html();
		for (var i = 0; i < linkList.length; i++) {
			docu = docu.replace(new RegExp(linkList[i].url, "g"), "<a target='_blank' class='btn btn-url' color:blue' href='" + linkList[i].url + '#' + linkList[i].password + "'>一键提取</a>")
		}
		$dom.html(docu)
	}
	function Link() {
		this.url = null;
		this.password = null;
		this.addLink = function(link, password) {
			this.url = link;
			this.password = password
		}
	}
	var linkList = new Array();
	var urlExp = /((?:https?:\/\/)?(?:yun|pan|eyun).baidu.com\/(?:s\/\w*|share\/\S*\d))/g;
	var isInSharePage = location.href.match(urlExp);
	if (isInSharePage) {
		isInSharePage = location.href;
		var password = isInSharePage.match(new RegExp("(\\w{4})$", "gm"));
		$("#accessCode").val(password);
		$(".g-button-right :contains('提取文件')").click()
	} else {
		var $docHTML = $("body").html();
		var $docText = $("body").text();
		var $script = $("script");
		var regRuleLink = "((?:https?:\\/\\/)?(?:yun|pan|eyun).baidu.com\\/(?:s\\/\\w*|share\\/\\S*\\d)(#\\w{4})?)";
		var regSplit = "\\s*(密|密码|提取码|访问码|提取密码|访问密码)(\\s|\\:|:)*";
		var regRulePwd = "\\w{4}";
		var regRuleTotal = regRuleLink + regSplit + regRulePwd;
		var regExp = new RegExp(regRuleTotal, "gm");
		var shareArray = $docText.match(regExp);
		var urlArray = new Array();
		var urlExp = new RegExp(regRuleLink, "gm");
		var pswExp = new RegExp(regSplit + regRulePwd, "gm");
		var pswArr = new Array();
		if (shareArray != null) {
			for (var i = 0; i < shareArray.length; i++) {
				if (urlArray.indexOf(shareArray[i].match(urlExp)[0]) == -1) {
					urlArray.push(shareArray[i].match(urlExp)[0]);
					pswArr.push(shareArray[i].match(pswExp)[0]);
					var link = new Link();
					link.url = shareArray[i].match(urlExp)[0];
					link.password = shareArray[i].match(pswExp)[0];
					linkList.push(link)
				}
			}
		}
		var pswArray = new Array();
		for (var i = 0; i < linkList.length; i++) {
			var link = linkList[i];
			link.password = link.password.match(new RegExp(regRulePwd, "gm"))[0]
		}
		$(".t_f").each(function() {
			activiteLink($(this), linkList)
		});
		$(".ratl").each(function() {
			activiteLink($(this), linkList)
		});
		$(".entry").each(function() {
			activiteLink($(this), linkList)
		})
	}
})();