您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
加速 github releases 页面的下载
// ==UserScript== // @name Speed Github Releases // @namespace http://tampermonkey.net/ // @version 0.4 // @description 加速 github releases 页面的下载 // @author CBK // @license GPL-3.0 // @match https://github.com/*/releases* // @icon https://github.githubassets.com/favicons/favicon.svg // @grant none // @run-at document-end // ==/UserScript== // 模仿块级作用域 // (function() { // 'use strict'; // // Your code here... // })(); "use strict"; main(); function main() { logger("开始"); observe_assets(); speed(); } function speed() { // 寻找 release 地址 // let elems = document.querySelectorAll("[href]"); let mirror_url = "https://github.moeyy.xyz/"; let pattern = /https:\/\/github.com\/.+\/.+\/releases\/download.+/; let elems = document.querySelectorAll("a.Truncate"); for (let elem of elems) { if (elem.href.match(pattern)) { // 修改 let url = elem.href.match(pattern)[0]; // let url = elem.href; elem.href = mirror_url + url; // } } } } function observe_assets() { // Observer let assets_elems = document.querySelectorAll( 'div[data-view-component="true"]', ); let observer = new MutationObserver((mutationRecords) => { // console.log("有变化"); // console.log(mutationRecords); logger(`${mutationRecords.length} 个元素发生变化`); speed(); }); for (let elem of assets_elems) { observer.observe(elem, { childList: true, subtree: true, // 及其更低的后代节点 }); } } function logger(msg) { console.log(`[${new Date().toISOString()}] ${msg}`); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址