From df0fa699fd04f0bc62309aa1d9fae1709adee981 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Thu, 22 Oct 2020 20:46:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20Raw=20=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD(=E2=98=81)=E5=BF=AB=E9=80=9F=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=8A=A0=E9=80=9F=E6=BA=90=E9=80=89=E9=A1=B9=EF=BC=88?= =?UTF-8?q?=E4=BD=8D=E4=BA=8E=E5=8F=B3=E4=B8=8A=E8=A7=92=E7=9A=84=20Tamper?= =?UTF-8?q?monkey=20=E6=89=A9=E5=B1=95=E5=9B=BE=E6=A0=87=E4=B8=AD=EF=BC=89?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GithubEnhanced-High-Speed-Download.user.js | 56 ++++++++++++++++------ README.md | 2 +- 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/GithubEnhanced-High-Speed-Download.user.js b/GithubEnhanced-High-Speed-Download.user.js index 1203ef5..3e7671b 100644 --- a/GithubEnhanced-High-Speed-Download.user.js +++ b/GithubEnhanced-High-Speed-Download.user.js @@ -1,6 +1,6 @@ -// ==UserScript== + // ==UserScript== // @name Github 增强 - 高速下载 -// @version 1.1.5 +// @version 1.1.6 // @author X.I.U // @description 为 Github 的 Clone、Release、Raw、Code(ZIP) 添加高速下载 // @match https://github.com/*/* @@ -10,6 +10,9 @@ // @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js // @grant GM_registerMenuCommand // @grant GM_openInTab +// @grant GM_getValue +// @grant GM_setValue +// @grant GM_notification // @license GPL-3.0 License // @run-at document-end // @namespace https://greasyfork.org/scripts/412245 @@ -31,24 +34,43 @@ var clone_url2 = "https://gitclone.com"; // 中国浙江杭州 var clone_url3 = "https://github.com.cnpmjs.org"; // 新加坡 - // 这里这里~~ - var raw_fast = "中国国内"; // 指定各个文件名后的云朵使用的高速下载链接,选择范围:[Github、中国国内、中国香港、美国洛杉矶],各加速源注意事项看下面,自行选择~~ - // 这里这里~~ + var raw_fast_arr = ['Github 原生','中国国内','中国香港','美国洛杉矶']; // Raw ☁ 加速源数组 + var raw_fast = GM_getValue('xiu2_raw_fast'); // 先获取加速源,如果没有就指定为 [中国国内] + if (!raw_fast){ + raw_fast = "中国国内"; + GM_setValue('xiu2_raw_fast', raw_fast_arr[1]); + } var raw_url0 = "https://raw.githubusercontent.com"; - var raw_url0_name = "Github"; // 原生链接 + var raw_url0_name = "Github 原生"; var raw_url1 = "https://cdn.jsdelivr.net"; var raw_url1_name = "中国国内"; - var raw_url1_tip = "注意:该项目当前分支总文件大小超过 50MB 时,此高速下载链接不可用。 注意:当前分支名为版本号格式时(如 v1.2.3),此高速下载链接因格式限制不可用。 "; + var raw_url1_tip = "注意:当前分支总文件大小超过 50MB 时,该高速下载链接不可用。 注意:当前分支名为版本号格式时(如 v1.2.3),该高速下载链接因格式限制不可用。 "; var raw_url2 = "https://raw.fastgit.org"; var raw_url2_name = "中国香港"; - var raw_url2_tip = "注意:单个文件太大时可能会提示超时,可以重试。 "; + var raw_url2_tip = "注意:单个文件太大时可能会提示超时,请重试。 "; var download_zip_svg = ``; var download_clone_svg = `` var raw_svg = `` var download_release_style = `padding:0 4px;margin-right: -1px;border-radius: 2px;background-color: #ffffff;border-color: rgba(27, 31, 35, 0.1);font-size: 12px;` + // 注册脚本菜单 + GM_registerMenuCommand('切换加速源 (☁)', function () { + var raw_fast_now_index = raw_fast_arr.indexOf(raw_fast); // 获取当前加速源位置 + var raw_fast_new_index; + if (raw_fast_now_index >= raw_fast_arr.length - 1){ // 如果当前加速源位置大于等于加速源总数,则改为第一个加速源,反之递增下一个加速源 + raw_fast_new_index = 0; + }else{ + raw_fast_new_index = raw_fast_now_index + 1; + } + raw_fast = raw_fast_arr[raw_fast_new_index]; + GM_setValue('xiu2_raw_fast', raw_fast_arr[raw_fast_new_index]); + + delDownLink(); // 删除旧加速源 + addDownLink(); // 添加新加速源 + GM_notification(`已切换加速源为:${raw_fast_arr[raw_fast_new_index]}`); // 提示消息 + }); GM_registerMenuCommand('反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});}); addRelease(); // Release 加速 @@ -168,7 +190,7 @@ } - // 添加 Raw 下载链接(添加到项目页文件名称后面) + // 添加 Raw 下载链接(云朵图标,添加到项目页文件名称后面) function addDownLink(){ // 如果不是项目文件页面,就返回 var files = $('.octicon.octicon-file'); @@ -197,10 +219,7 @@ Name = cntElm.innerText, href = cntElm.attributes["href"].nodeValue.replace('https://github.com',''); // 如果 raw_fast 为 true 则下载链接为高速下载链接,反之为 Github 原生下载链接 - var href2 = href.replace('/blob/','/'), - url, - url_name, - url_tip = ""; + var href2 = href.replace('/blob/','/'), url, url_name, url_tip = ""; switch(raw_fast) { case raw_url0_name: @@ -222,11 +241,20 @@ url_name = download_url5_name; break; } - var html1 = ` `; + var html1 = ` `; $(cntElm).after(html1); // 绑定鼠标事件 trElm.onmouseover=mouseOverHandler; trElm.onmouseout=mouseOutHandler; }); } + + + // 删除 Raw 下载链接(云朵图标) + function delDownLink(){ + var aElm = document.querySelectorAll('.fileDownLink'); + for(var num = 0;num 其他基于 Chromium 内核的浏览器(如国内各大浏览器)都可以使用 Chrome 的扩展。