// ==UserScript== // @name Download_Pytorch // @namespace http://tampermonkey.net/ // @version 0.2 // @description Help you to download the pytorch. // @author YuhangTian // @match https://pytorch.org/get-started/previous-versions/ // @icon https://www.google.com/s2/favicons?sz=64&domain=pytorch.org // @grant GM_xmlhttpRequest // @connect * // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/478006/Download_Pytorch.user.js // @updateURL https://update.greasyfork.icu/scripts/478006/Download_Pytorch.meta.js // ==/UserScript== (async() => { 'use strict'; console.log("test damn"); // Your code here... var all_text; //console.log(all_text); function fetchTextFromURL(url, callback) { GM_xmlhttpRequest({ method: "GET", url: url, headers: { "Content-Type": "application/json" }, onload: function(response) { callback(response.responseText); } }); } fetchTextFromURL("https://download.pytorch.org/whl/torch_stable.html", function(all_text) { // 查找所有具有以 "wheel" 开头的ID的元素 var wheelElements = document.querySelectorAll('[id^="wheel"]'); // 遍历每个匹配的 "wheel" 元素 wheelElements.forEach(function(targetElement) { // 创建按钮元素 var downloadButton = document.createElement("button"); downloadButton.textContent = "Download"; // 将按钮添加到页面(放在目标元素的后面) targetElement.parentNode.insertBefore(downloadButton, targetElement.nextSibling); // 添加按钮的点击事件监听器 downloadButton.addEventListener("click", function() { var linuxAndWindowsElement = targetElement.nextElementSibling; // 查找该元素后面的第一个具有 "class" 为 "language-plaintext highlighter-rouge" 的文本块 var codeBlock = findCodeBlock(linuxAndWindowsElement); //console.log(codeBlock.textContent); if (codeBlock) { // 提取文本块中的文本 var text = codeBlock.textContent; var textSegments = text.split("#"); var pattern = /(\btorch|torchvision|torchaudio)==([^ ]+)/g; var versions = {}; // 使用正则表达式匹配并提取版本信息 for (var i = 1; i < textSegments.length; i++) { console.log(textSegments[i]); var segment = textSegments[i]; var matches; while ((matches = pattern.exec(segment)) !== null) { if (matches) { if (!versions[i]) { versions[i] = {}; } versions[i][matches[1]] = matches[2]; } } } var links=[]; for(var j=1;j