本帖最后由 p8e2cn5eopn 于 2024-6-17 22:09 编辑
这个是一个比较小众的需求,不知有没有人需要,但还是决定把自己脚本放出来供大家使用,如果能够帮到忙了,希望给个好评。
测试链接:https://kwt767.lanzout.com/b044uyehe
注意:本脚本只匹配此一测试链接,如果需要变更可自行修改脚本。
使用方法:安装脚本后,点击左上角“main”按钮后请耐心等待,直至输出全部链接并会自动复制到剪贴板中。链接保质期短,需尽快使用。
以下是脚本代码:
[JavaScript] 纯文本查看 复制代码 // ==UserScript==
// @name 蓝奏云批量输出下载链接
// @AuThor runwithfaith
// @compatible firefox
// @homepage https://greasyfork.org/users/718683
// @Icon http://lanzout.com/favicon.ico
// @grant GM_setValue
// @grant GM_getValue
// @grant GM.setClipboard
// @license MIT
// @match https://kwt767.lanzout.com/b044uyehe
// @require https://update.greasyfork.org/scripts/435697/1387554/mylib.js
// @require https://fastly.jsdelivr.net/npm/sweetalert2@11.10.3/dist/sweetalert2.all.min.js
// ==/UserScript==
//首先,把目录下所有的文件的链接的iframe链接得到.srcs
my.addBtns(function main(){
const uw=unsafeWindow,
names = document.querySelectorAll('#name'),
len=names.length,
ifr=my.append(`iframe`,document.documentElement,'');
uw.strs='';uw.srcs=[];
(function xhrForSrc(index){
const xhr = new XMLHttpRequest(),ahref=names[index].querySelector('a').href;
// alert(ahref);
xhr.open('GET', ahref, true);
xhr.onload = async function () {
const parser=new DOMParser(),
xmlDoc=parser.parseFromString(xhr.responseText,"text/html"),
src = xmlDoc.querySelector('iframe').src;
uw.srcs[index++]=src;
ifr.src=src;
ifr.onload=async function(){
await sleep(1000);//等待ifr的ajax加载
uw.strs+=ifr.contentDocument.querySelector('a').href+'\n';
}
await sleep(2000);//等待ifr加载
if(index<len) {
Swal.fire('正在加载第'+index+'个iframe');
Swal.showLoading()
return xhrForSrc(index);
}
else {
// cl(srcs);
GM.setClipboard(uw.strs)
Swal.fire(`已复制`);
return;
}
};
xhr.send(null)
})(0)//从names[0]起
});
function sleep(time){
return new Promise((resolve) => setTimeout(resolve, time));
}
|