sourceforge.net 台灣下載加速

在 sourceforge.net 直接顯示下載連結並替換鏡像

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        sourceforge.net 台灣下載加速
// @description 在 sourceforge.net 直接顯示下載連結並替換鏡像
// @namespace   jfcherng
// @match       https://sourceforge.net/projects/*/files/*
// @version     0.0.3
// @grant       none
// @author      jfcherng
// @license     MIT
// @icon        https://www.google.com/s2/favicons?domain=sourceforge.net
// @supportURL  https://github.com/jfcherng/my-user-js
// ==/UserScript==

const mirror_host = 'phoenixnap.dl.sourceforge.net';

// ---------------------------------------------------------------------------

const dl_doms = document.querySelectorAll('a[href$="/download"]');

for (let i = 0; i < dl_doms.length; ++i) {
    let url = dl_doms[i].getAttribute('href');

    url = url.replace(
        /:\/\/sourceforge\.net\/projects\/([^\/]+)\/files\/(.+)\/download/,
        `://${mirror_host}/project/$1/$2`
    );

    dl_doms[i].setAttribute('href', url);
}