Greasy Fork

Greasy Fork is available in English.

dm1080直接跳转

转换编号为直达链接,并不知道站长知道了这东西会不会做出什么应对措施.

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         dm1080直接跳转
// @namespace    http://tampermonkey.net/
// @version      0.0.0.0.0.0.5
// @description   转换编号为直达链接,并不知道站长知道了这东西会不会做出什么应对措施.
// @homepage		http://greasyfork.icu/zh-CN/scripts/29313-dm1080%E7%9B%B4%E6%8E%A5%E8%B7%B3%E8%BD%AC
// @author       You
// @match        https://dm1080p.com/archives/*
// @match        https://52kbd.com/archives/*
//@connect  zzzpan.com
// @grant        GM_xmlhttpRequest
// @grant        GM_setClipboard
// ==/UserScript==


var urlRegex = /[0-9A-Z]{7}(?=-| |$)/g; //正则,不区分大小写,匹配七位大写编码
//获取id名为main下entry-content类中的所有span元素
var sp=document.getElementById('main').getElementsByClassName('entry-content')[0].getElementsByTagName('span')

//递归函数,实现遍历同一个span元素中的多个编码匹配
//span:元素父节点,txt:innerHTML文本
function nam(span,txt) {
	var rex=txt.match(urlRegex)
	if (rex) {//如果正则匹配,不管多少,先处理再说
		var q=txt.indexOf(rex[0]) //最初匹配的位置
		var qtxt=txt.substring(0,q) //赋值匹配位置之前的所有文字
		var htxt=txt.substring(q+7) //赋值匹配位置之后的所有文字
		
		span.appendChild(document.createTextNode(qtxt)) //先在节点中插入最初的文字
		//创建超链接节点
		var elmLink = document.createElement("a");
		elmLink.href='https://zzzpan.com/?/file/view-'+rex[0]+'.html';
        //xh.url=elmLink.href
		elmLink.target="_blank";
		elmLink.innerText=rex[0]

        var cd=document.createElement("code")
        cd. style="font-size:100%; "
        cd.appendChild(elmLink)

        GM_xmlhttpRequest({
            method: 'GET',
            url: elmLink.href,
            headers: {
                'User-agent': navigator.userAgent,
                'Accept': 'text/xml',
                'referer': "https://zzzpan.com/index.php"
            },
            onload: function(responseDetails) {
                var parser = new DOMParser();
                var dom = parser.parseFromString(responseDetails.responseText,"application/xml");
                var d=dom.getElementsByClassName('linkHidden')[0].getElementsByTagName('a')[0]
                d.title='直接下载'
                d.innerText='📥'
                //下载链接的添加与代码所在位置和顺序无关
                s.appendChild(d)
            }
        });
        var s = document.createElement("span")
        s.appendChild(cd)
        //并追加到父结点中
		span.appendChild(s);

		nam(span,htxt)
	} else {
		//如果余下的文本中没有匹配,则直接追加
		span.appendChild(document.createTextNode(txt))
	}


}

for (var i = 0; i <sp.length; i++) {
	//var sp=ss[2].getElementsByTagName('span')
	var iH=sp[i].innerHTML //文本
	if (iH.match(urlRegex)) {
		//如果匹配成功,则先清除innerHTML
		sp[i].innerHTML=''
        //console.log(sp[i])
		nam(sp[i],iH)
	}
}