// ==UserScript==
// @name FastGit
// @version 0.5
// @description GitHub Clone or download、releases 下载加速
// @author Vhxubo
// @license MIT
// @icon https://github.githubassets.com/favicon.ico
// @homepage https://gist.github.com/vhxubo/d67fbd5bb3b7308b2e3690ca58e12c12
// @namespace https://gist.github.com/vhxubo/d67fbd5bb3b7308b2e3690ca58e12c12
// @match https://github.com/*/*
// @grant none
// @note 2020.06.27_V0.5 适配新版 UI
// @note 2020.05.06_V0.4 新增: zipProxy - zip 下载链接
// @downloadURL none
// ==/UserScript==
(function () {
'use strict';
var gitProxy = 'https://hub.fastgit.org';
var sshProxy = 'git@fastgit.org';
var releaseProxy = 'https://release.fastgit.org';
var zipProxy = 'https://download.fastgit.org';
if (window.location.href.indexOf('releases') === -1) {
var regex = /"((\/.*)+\.zip)"/;
var domDownload = document.querySelector('span.d-flex')||document.querySelector('get-repo-controller');
if (domDownload !== null) {
var oldHtml = domDownload.outerHTML;
var zipLink = gitProxy + regex.exec(oldHtml)[1];
var outHtml = oldHtml
.replace('Clone or download', 'FastGit')
.replace('Clone', 'FastGit')
.replace(/https:\/\/github.com/g, gitProxy)
.replace(regex, zipLink)
.replace(/git@github.com/g, sshProxy)
.replace('https%3A%2F%2Fgithub.com', 'https%3A%2F%2Fhub.fastgit.org');
domDownload.insertAdjacentHTML('afterend', outHtml);
}
} else {
var resDownload = document.querySelectorAll('.Box--condensed a');
if (resDownload !== null) {
var i;
for (i = 0; i < resDownload.length; i++) {
var resHref = resDownload[i].getAttribute('href');
if(resHref.indexOf('.zip') === -1) {
resDownload[i].insertAdjacentHTML(
'afterend',
`FastGit Download`
);
} else {
resDownload[i].insertAdjacentHTML(
'afterend',
`FastGit Download`
);
}
}
}
}
})();