From 25fa229852b1f5ad7f33a6fc2d8bc892ae860909 Mon Sep 17 00:00:00 2001 From: Aoran Zeng Date: Sat, 9 Sep 2023 16:49:06 +0800 Subject: [PATCH] Change to npmmirror and use a new url for cesu [Gitee close #I7ZC7R] --- chsrc.c | 47 +++++++++++++++++++++++++++++++---------------- chsrc.h | 34 +++++++++++++++++++--------------- 2 files changed, 50 insertions(+), 31 deletions(-) diff --git a/chsrc.c b/chsrc.c index 56fb41a..3d8d38a 100644 --- a/chsrc.c +++ b/chsrc.c @@ -1,16 +1,16 @@ -/* -------------------------------------------------------------- -* File : chsrc.c -* License : GPLv3 -* Authors : Aoran Zeng -* Created on : <2023-08-28> -* Last modified : <2023-09-08> -* -* chsrc: -* -* Change Source —— 命令行换源工具 -* -* 该软件为自由软件,采用 GPLv3 许可证,请查阅 LICENSE.txt 文件 -* -------------------------------------------------------------*/ +/** ------------------------------------------------------------ + * File : chsrc.c + * License : GPLv3 + * Authors : Aoran Zeng + * Created on : <2023-08-28> + * Last modified : <2023-09-09> + * + * chsrc: + * + * Change Source —— 命令行换源工具 + * + * 该软件为自由软件,采用 GPLv3 许可证,请查阅 LICENSE.txt 文件 + * ------------------------------------------------------------*/ #include "chsrc.h" @@ -92,6 +92,9 @@ does_the_input_mirror_exist (source_info* sources, size_t size, char* target, ch return idx; } +/** + * 该函数来自 oh-my-mirrorz.py,由我(@ccmywish)翻译为C语言,但功劳和版权属于原作者 + */ char* to_human_readable_speed (double speed) { @@ -118,16 +121,28 @@ to_human_readable_speed (double speed) /** * 测速代码参考自 https://github.com/mirrorz-org/oh-my-mirrorz/blob/master/oh-my-mirrorz.py - * 修改为C语言,一切功劳属于原作者 + * 功劳和版权属于原作者,由我(@ccmywish)修改为C语言,并做了额外调整。 * * @return 返回测得的速度,若出错,返回-1 */ double test_speed_url (const char* url) { + char* time_sec = "6"; + +/* 现在我们切换至跳转后的链接来测速,不再使用下述判断 + if (xy_str_start_with(url, "https://registry.npmmirror")) + { + // 这里 npmmirror 跳转非常慢,需要1~3秒,所以我们给它留够至少8秒测速时间,否则非常不准 + time_sec = "10"; + } +*/ + // 我们用 —L,因为Ruby China源会跳转到其他地方 - char* curl_cmd = xy_strjoin(4, "curl -qsL -o ", xy_os_devnull, " -w \"%{http_code} %{speed_download}\" -m6 -A chsrc/" Chsrc_Version - " ", url); + // npmmirror 也会跳转 + char* curl_cmd = xy_strjoin(6, "curl -qsL -o ", xy_os_devnull, + " -w \"%{http_code} %{speed_download}\" -m", time_sec , + " -A chsrc/" Chsrc_Version " ", url); // xy_info (xy_2strjoin("chsrc: 测速 ", url)); diff --git a/chsrc.h b/chsrc.h index bd4df1a..e68fb10 100644 --- a/chsrc.h +++ b/chsrc.h @@ -1,14 +1,14 @@ -/* -------------------------------------------------------------- -* File : chsrc.h -* License : GPLv3 -* Authors : Aoran Zeng -* Created on : <2023-08-29> -* Last modified : <2023-09-05> -* -* chsrc: -* -* chsrc.c 头文件 -* -------------------------------------------------------------*/ +/** ------------------------------------------------------------ + * File : chsrc.h + * License : GPLv3 + * Authors : Aoran Zeng + * Created on : <2023-08-29> + * Last modified : <2023-09-09> + * + * chsrc: + * + * chsrc.c 头文件 + * ------------------------------------------------------------*/ #include "xy.h" @@ -95,7 +95,11 @@ mirror_info RubyChina = {"rubychina", "RubyChina", "Ruby China 社区", "https://gems.ruby-china.com/", "https://gems.ruby-china.com/rubygems/gems/nokogiri-1.15.0-java.gem"}, // 9.9 MB - GoProxyCN = {"goproxy.cn", "Goproxy.cn", "七牛云 Goproxy.cn", "https://goproxy.cn/", + NpmMirror = {"npmmirror", "npmmirror", "npmmirror (阿里云赞助)", "https://npmmirror.com/", + // 注意,这个是跳转后的地址,不确定未来会不会改变 + "https://cdn.npmmirror.com/packages/%40tensorflow/tfjs/4.10.0/tfjs-4.10.0.tgz"}, // 29MB + + GoProxyCN = {"goproxy.cn", "Goproxy.cn", "Goproxy.cn (七牛云赞助)", "https://goproxy.cn/", "https://goproxy.cn/github.com/aws/aws-sdk-go/@v/v1.45.2.zip"}, // 30 MB GoProxyIO = {"goproxy.io", "GOPROXY.IO", "GOPROXY.IO", "https://goproxy.io/", @@ -108,7 +112,7 @@ mirror_info* available_mirrors[] = { &MirrorZ, &Tuna, &Sjtug_Zhiyuan, &Zju, &Lzuoss, &Jlu, &Bfsu, &Pku, &Bjtu, &Sustech, &Ustc, &Nju, // &Cqu, &Ali, &Tencent, &Netease, &Sohu, - &RubyChina, &GoProxyCN, &GoProxyIO + &RubyChina, &NpmMirror, &GoProxyCN, &GoProxyIO // 暂不支持 &NugetOrg }; @@ -161,14 +165,14 @@ pl_python_sources[] = { /** - * 2023-08-30 更新 + * 2023-09-09 更新 * * Sjtug, Tuna, Lzuoss, Jlu, Bfsu, 网易,搜狐 都没有 * * @note 腾讯软件源虽然有npm的名,但名存实亡 */ pl_nodejs_sources[] = { - {&Ali, "https://registry.npmmirror.com"}, + {&NpmMirror, "https://registry.npmmirror.com"}, {&Zju, "https://mirrors.zju.edu.cn/docs/npm/"} },