🏠 Home 

HuggingFace下载列表获取

这是一个用于批量获取HuggingFace项目下载链接的脚本(以使用IDM类软件进行批量下载).

// ==UserScript==
// @name         HuggingFace下载列表获取
// @namespace    https://sfkgroup.github.io/
// @version      0.1
// @description  这是一个用于批量获取HuggingFace项目下载链接的脚本(以使用IDM类软件进行批量下载).
// @author       SFKgroup
// @match        https://huggingface.co/*/*/tree/main
// @match        https://hf-mirror.com/*/*/tree/main
// @grant        GM_log
// @icon         https://sfkgroup.github.io/images/favicon.ico
// @license      LGPL
// ==/UserScript==
(function () {
function createClickBox(box_id) {
var e_1 = document.createElement("label");
e_1.setAttribute("class", "custom-checkbox");
var e_2 = document.createElement("input");
e_2.setAttribute("type", "checkbox");
e_2.setAttribute("name", "download_option");
e_2.setAttribute("value", box_id);
e_2.checked = true
e_1.appendChild(e_2);
var e_3 = document.createElement("span");
e_3.setAttribute("class", "checkmark");
e_1.appendChild(e_3);
return e_1;
}
function createStyleNode() {
var e_0 = document.createElement("style");
e_0.setAttribute("type", "text/css");
e_0.appendChild(document.createTextNode("\n.custom-checkbox input[type=\"checkbox\"] {\ndisplay: none; \n}\n\n.custom-checkbox .checkmark {\ndisplay: inline-block;\nwidth: 20px;\nheight: 20px;\nbackground: #eee;\nmargin-right: 8px;\nborder-radius: 4px;\nposition: relative;\n}\n\n.custom-checkbox input[type=\"checkbox\"]:checked + .checkmark:before {\ncontent: '';\nposition: absolute;\nleft: 7px;\ntop: 3px;\nwidth: 6px;\nheight: 10px;\nborder: solid #000;\nborder-width: 0 2px 2px 0;\ntransform: rotate(45deg);\n}\n"));
return e_0;
}
function createAndDownloadFile(filename, content) {
const blob = new Blob([content], { type: 'text/plain' });
const downloadLink = document.createElement('a');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = filename;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
function getCheckedBoxes() {
var checkboxes = document.getElementsByName('download_option');
var selected = "";
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
selected += window.location.origin + table.children[checkboxes[i].value].children[1].getAttribute('href').split('?')[0] + '\n';
}
}
console.log(selected);
createAndDownloadFile('download_urls.txt', selected);
}
function createDownloadButton() {
var e_0 = document.createElement("button");
e_0.setAttribute("class", "btn group mr-0 flex-grow-0 cursor-pointer rounded-full ");
var e_1 = document.createElement("span");
e_1.setAttribute("class", "group-hover:underline");
e_1.appendChild(document.createTextNode("Download Links"));
e_0.onclick = getCheckedBoxes
e_0.appendChild(e_1);
return e_0;
}
var table = document.querySelector("body > div > main > div.container.relative.flex.flex-col.md\\:grid.md\\:space-y-0.w-full.md\\:grid-cols-12.space-y-4.md\\:gap-6.mb-16 > section > div:nth-child(4) > ul")
for (let k = 0; k < table.children.length; k++) {
let fatherbox = table.children[k].children[0].children[0]
fatherbox.insertBefore(createClickBox(k), fatherbox.firstChild);
}
table.appendChild(createStyleNode())
let tool_bar = document.querySelector("body > div > main > div.container.relative.flex.flex-col.md\\:grid.md\\:space-y-0.w-full.md\\:grid-cols-12.space-y-4.md\\:gap-6.mb-16 > section > header > div.mb-2.flex.w-full.items-center.md\\:w-auto")
tool_bar.appendChild(createDownloadButton())
})();