Compare commits

...

1 Commits

Author SHA1 Message Date
zzyyyl
02961e60e9 feat: 增加从 GitHub 直接获取资源文件的方式,并优先尝试从 GitHub 获取
github raw 没有 dynamic_list.txt
2024-07-14 17:34:23 +08:00
2 changed files with 13 additions and 5 deletions

View File

@@ -42,6 +42,7 @@ namespace MaaWpfGui.Constants
public const string MaaApi = "https://ota.maa.plus/MaaAssistantArknights/api/";
public const string GitHubRawApi = "https://raw.githubusercontent.com/MaaAssistantArknights/MaaAssistantArknights/dev/";
public const string MaaResourceApi = "https://ota.maa.plus/MaaAssistantArknights/MaaAssistantArknights/";
public const string AnnMirrorResourceApi = "https://maa-ota.annangela.cn/MaaAssistantArknights/MaaAssistantArknights/";
public const string S3ResourceApi = "https://s3.maa-org.net:25240/maaassistantarknights/MaaAssistantArknights/MaaAssistantArknights/";

View File

@@ -108,6 +108,11 @@ namespace MaaWpfGui.Models
return mirror;
}
var preferredMirrorList = new List<string>
{
MaaUrls.GitHubRawApi,
};
var mirrorList = new List<string>
{
MaaUrls.S3ResourceApi,
@@ -115,11 +120,13 @@ namespace MaaWpfGui.Models
MaaUrls.AnnMirrorResourceApi,
};
while (mirrorList.Count != 0)
while (mirrorList.Count != 0 || preferredMirrorList.Count != 0)
{
var currentMirrorList = preferredMirrorList.Count != 0 ? ref preferredMirrorList : ref mirrorList;
// random select a mirror
var index = new Random().Next(0, mirrorList.Count);
var mirrorUrl = mirrorList[index];
var index = new Random().Next(0, currentMirrorList.Count);
var mirrorUrl = currentMirrorList[index];
if (await IsMirrorAccessibleAsync(mirrorUrl))
{
@@ -127,7 +134,7 @@ namespace MaaWpfGui.Models
break;
}
mirrorList.RemoveAt(index);
currentMirrorList.RemoveAt(index);
}
if (mirror != MaaUrls.MaaResourceApi)
@@ -283,7 +290,7 @@ namespace MaaWpfGui.Models
// 这些文件数量不固定,需要先获取索引文件,再根据索引文件下载
private static async Task<UpdateResult> UpdateFilesWithIndexAsync(string baseUrl, int maxRetryTime = 2)
{
var indexSRet = await UpdateFileWithETagAsync(baseUrl, MaaDynamicFilesIndex, MaaDynamicFilesIndex, maxRetryTime);
var indexSRet = await UpdateFileWithETagAsync(MaaUrls.MaaResourceApi, MaaDynamicFilesIndex, MaaDynamicFilesIndex, maxRetryTime);
if (indexSRet == UpdateResult.Failed)
{
return UpdateResult.Failed;