增加 chef_set_source_smurl

This commit is contained in:
Aoran Zeng
2026-01-21 15:58:08 +08:00
parent 575f148ff5
commit 843ea9e755
3 changed files with 43 additions and 4 deletions

View File

@@ -7,7 +7,7 @@
! Contributors : Nul None <nul@none.org>
! |
! Created On : <2025-08-11>
! Last Modified : <2025-08-11>
! Last Modified : <2026-01-21>
! ---------------------------------------------------------- -->
# 新增/修改 "换源链接"
@@ -24,6 +24,11 @@ def_sources_begin()
{&Tencent, "https://mirrors.cloud.tencent.com/npm/", FeedByPrelude},
{&, "某镜像站提供的换源链接" FeedByPrelude}
def_sources_end()
//
// 调整上述某一个镜像站的所提供源的 "换源链接"
chef_set_source_url (this, &UpstreamProvider, "新的换源链接");
```
<br>
@@ -51,13 +56,17 @@ def_sources_begin()
{&Tencent, "https://mirrors.cloud.tencent.com/npm/", FeedByPrelude},
def_sources_end()
//
// 调整/设置上述某一个镜像站的所提供源的 "精准测速链接"
chef_set_source_smurl (this, &UpstreamProvider, "新的测速链接")
// 把所有上述源的 "测速链接" 设置为 "换源链接" + postfix
chef_set_sources_speed_measure_url_with_postfix (this, "/dir/BigFile.tar.gz");
// 基于 "换源链接" 做更自定义的操作
chef_set_sources_speed_measure_url_with_func (this, func, data);
// 调整某一个镜像站(Provider)的 "测速链接"
chef_set_provider_speed_measure_url (&Tencent, "https://mirrors.cloud.tencent.com/npm/BigFile.tar.gz")
chef_set_provider_speed_measure_url (&Tencent, "https://mirrors.cloud.tencent.com/npm/BigFile.tar.gz");
// 调整某一个镜像站(Provider)的 "测速精度"
chef_set_provider_speed_measure_accuracy (&UpstreamProvider, ROUGH);;
chef_set_provider_speed_measure_accuracy (&UpstreamProvider, ROUGH);
```

View File

@@ -164,6 +164,10 @@ chef_set_sources_speed_measure_url_with_postfix (Target_t *target, char *postfix
void
chef_set_source_url (Target_t *target, SourceProvider_t *provider, char *url)
{
xy_cant_be_null (target);
xy_cant_be_null (provider);
xy_cant_be_null (url);
for (int i=0; i < target->sources_n; i++)
{
Source_t *src = &target->sources[i];
@@ -178,6 +182,32 @@ chef_set_source_url (Target_t *target, SourceProvider_t *provider, char *url)
xy_unreached();
}
/**
* 设置 或 修改 某个镜像站的 *精准*测速链接
*
* sm = speed measure
*/
void
chef_set_source_smurl (Target_t *target, SourceProvider_t *provider, char *url)
{
xy_cant_be_null (target);
xy_cant_be_null (provider);
xy_cant_be_null (url);
for (int i=0; i < target->sources_n; i++)
{
Source_t *src = &target->sources[i];
SourceProvider_t *p = src->provider;
if (p == provider)
{
src->speed_measure_url = xy_strdup (url);
return;
}
}
xy_unreached();
}
/**
* @note 用于: 组中的 item target 在 standalone 模式时正确填充源信息

View File

@@ -181,7 +181,7 @@ Target_t;
* def_sources_end()
*
* 若是出于代码美观考虑,上述第三列可以写 FeedByPrelude然后下面调用函数来填充:
* chef_set_source_speed_measure_url()
* chef_set_source_smurl()
* chef_set_sources_speed_measure_url_with_postfix()
* chef_set_sources_speed_measure_url_with_func()
*/