您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
镜像访问GitHub、加速克隆和下载;适配Github新UI;增加新克隆站点;前往项目Github仓库查看免费搭建Github镜像站点方法
当前为
// ==UserScript== // @icon https://github.githubassets.com/favicon.ico // @name GitHub镜像加速访问、克隆和下载 // @namespace RC1844.FastGithub // @author RC1844 // @homepageURL https://github.com/RC1844/FastGithub // @supportURL https://github.com/RC1844/FastGithub/issues // @license MIT License // @description 镜像访问GitHub、加速克隆和下载;适配Github新UI;增加新克隆站点;前往项目Github仓库查看免费搭建Github镜像站点方法 // @include *://github.com/* // @include *://github* // @include *://hub.fastgit.org/* // @require http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js // @version 1.4.7 // @grant GM_addStyle // ==/UserScript== (function () { "use strict"; //=true为启用,=false为禁用 var clone = true; // var clone = false; var depth = true; // var depth = false; var mirror_url = new Array(); mirror_url[0] = "https://github.com.cnpmjs.org/"; mirror_url[1] = "https://hub.fastgit.org/"; mirror_url[2] = "https://github.wuyanzheshui.workers.dev/"; mirror_url[3] = "https://github.bajins.com/"; mirror_url[4] = "https://download.fastgit.org/"; mirror_url[5] = "https://github.rc1844.workers.dev/"; mirror_url[6] = "https://gitclone.com/github.com/"; mirror_url[7] = "[email protected]:"; mirror_url[8] = "https://github-speedup.laiczhang.com/"; //添加对应索引即可使用 var clone_set = [0, 1, 6, 7, 8]; var mirror_set = [0, 1, 2, 3, 5, 8]; var download_set = [2, 4, 5, 8]; //其他 var other_url = new Array(); other_url = [{ url: "https://github.com/RC1844/FastGithub", name: "脚本Github仓库地址,点个赞谢谢", }, { url: "https://greasyfork.org/zh-CN/scripts/397419", name: "GreasyFork地址,希望可以给我评分收藏", }, { url: "https://minhaskamal.github.io/DownGit", name: "DownGit", }, { url: "https://d.serctl.com/", name: "GitHub中转下载", }, { url: "https://github.zhlh6.cn/", name: "加速你的Github", }, { url: "http://gitd.cc/", name: "GitHub代下载", }, { url: "https://gh.isteed.cc/", name: "gh-proxy部署站点", }, { url: "https://github.zsxwz.workers.dev/", name: "gh-proxy部署站点", }, { url: "https://gh.api.99988866.xyz/", name: "gh-proxy部署站点", }, { url: "https://g.ioiox.com/", name: "gh-proxy部署站点", }, { url: "https://gh.sky-and-poem.fun/", name: "gh-proxy部署站点", }, // { // url: "", // name: "", // }, ]; var str1 = ""; if (clone) { str1 += "git clone "; if (depth) { str1 += "--depth=1 "; } } var a = window.location.href.split("/"); var str2 = a[3] + "/" + a[4] + ".git"; var str3 = window.location.pathname; //镜像列表 var info = `<details class="details-reset details-overlay mr-0 mb-0" id="mirror-menu"> <summary class="btn ml-2 btn-primary" data-hotkey="m" title="打开列表" aria-haspopup="menu" role="button"> <span class="css-truncate-target" data-menu-button="">镜像网站</span> <span class="dropdown-caret"></span> </summary> <details-menu class="SelectMenu SelectMenu--hasFilter" role="menu"> <div class="SelectMenu-modal" style="width: 400px;"> <header class="SelectMenu-header"> <span class="SelectMenu-title">镜像站点与快速克隆</span> <button class="SelectMenu-closeButton" type="button" data-toggle-for="mirror-menu"><svg aria-label="Close menu" class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"> </path> </svg></button> </header> <tab-container class="d-flex flex-column js-branches-tags-tabs" style="min-height: 0;"> <div class="SelectMenu-tabs" role="tablist"> <button class="SelectMenu-tab" type="button" data-filter-placeholder="Find or create a branch…" role="tab" aria-selected="true" tabindex="0">主要</button> <button class="SelectMenu-tab" type="button" data-filter-placeholder="Find a tag" role="tab" aria-selected="false" tabindex="-1">其他</button> </div> <div role="tabpanel" class="d-flex flex-column flex-auto overflow-auto" tabindex="0"> <div class="SelectMenu-list" data-filter-list=""> <div class=" btn-block" style="padding: 4px;background-color: #ffffdd;color: #996600;border-top-left-radius: 3px;border-top-right-radius: 3px;" role="alert">clone、depth命令的插入可手动编辑代码关闭</div> <div class=" btn-block" style="padding: 4px;background-color: #ffcccc;color: #990000;border-top-left-radius: 3px;border-top-right-radius: 3px;" role="alert">请不要在镜像网站登录账号,若因此造成任何损失本人概不负责</div>`; //克隆列表 for (let i in clone_set) { info += `<div class="input-group"> <input type="text" class="form-control input-monospace input-sm" value="${ str1 + mirror_url[clone_set[i]] + str2 }" readonly="" data-autoselect=""> <div class="input-group-button"> <clipboard-copy value="${ str1 + mirror_url[clone_set[i]] + str2 }" class="btn btn-sm"><svg class="octicon octicon-clippy" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"> </path> </svg></clipboard-copy> </div> </div>`; } //浏览列表 for (let i in mirror_set) { info += `<a class="SelectMenu-item" href="${ mirror_url[mirror_set[i]] + str3 }" target="_blank" role="menuitemradio" aria-checked="false" rel="nofollow" title="${ mirror_url[mirror_set[i]]}"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"> </path> </svg> <span class="break-word">镜像浏览${i}</span> </a>`; } if (location.hostname != "github.com") { info += `<a class="SelectMenu-item" href="https://github.com${str3}" target="_blank" role="menuitemradio" aria-checked="false" rel="nofollow"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"> </path> </svg> <span class="break-word">返回GitHub</span> </a>`; } info += ` </div> </div> <div role="tabpanel" class="d-flex flex-column flex-auto overflow-auto" tabindex="0" hidden=""> <div class="SelectMenu-list"> `; //其他列表 other_url.forEach((element) => { info += `<a class="SelectMenu-item" href="${element.url}" target="_blank" title="${element.url}" role="menuitemradio" aria-checked="false" rel="nofollow"> <span class="css-truncate css-truncate-overflow" style="text-align:center;"> ${element.name} </span> </a> `; }); info += `</div> </div> </tab-container> </div> </details-menu> </details>`; $("div.flex-auto.min-width-0.width-fit.mr-3").after(info); //Fast Download ZIP $("ul >li.Box-row.Box-row--hover-gray.p-0").each(function () { var span = `<li class="Box-row p-0">`; $(this).find("a[rel='nofollow']").each(function () { var href = $(this).attr("href"); for (let i in download_set) { span += `<a class="d-flex flex-items-center text-gray-dark text-bold no-underline Box-row Box-row--hover-gray p-3" rel="nofollow" href="${mirror_url[download_set[i]] + href}" title="${mirror_url[download_set[i]]}"> <svg class="octicon octicon-file-zip mr-3" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z"> </path> </svg>Fast Download ZIP${i}</a>`; } }); span += `</li>`; $(this).after(span); }); //Download Releases $(".Box--condensed").each(function () { $(this).find(".flex-items-center>a").each(function () { var href = $(this).attr("href"); $(this).next().append(DownloadHref(href)); if (!IsPC()) { $(".d-flex").removeClass("d-flex"); } }); $(this).find(".d-block.Box-body>a").each(function () { var href = $(this).attr("href"); $(this).after(DownloadHref(href)); $(this).parent().addClass("d-flex flex-justify-between"); }); }); function DownloadHref(href) { var span = `<small>`; for (let i in download_set) { span += `<a class="flex-1 btn btn-outline get-repo-btn" rel="nofollow" href="${mirror_url[download_set[i]] + href}" title="${mirror_url[download_set[i]]}">快速下载${i}</a>`; } span += `</small>`; return span; } function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = [ "Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod", ]; var flag = true; for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; } } return flag; } })();