mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 09:50:40 +08:00
feat: Add a mirror for resource OTA
Thanks for annangela
This commit is contained in:
@@ -43,6 +43,7 @@ namespace MaaWpfGui.Constants
|
||||
public const string MaaApi = "https://ota.maa.plus/MaaAssistantArknights/api/";
|
||||
|
||||
public const string MaaResourceApi = "https://ota.maa.plus/MaaAssistantArknights/MaaAssistantArknights/";
|
||||
public const string AnnMirrorResourceApi = "https://maa-ota.annangela.cn/MaaAssistantArknights/MaaAssistantArknights/";
|
||||
|
||||
public const string QqGroups = "https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html";
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace MaaWpfGui.Models
|
||||
{
|
||||
public static class ResourceUpdater
|
||||
{
|
||||
private static readonly List<string> _maaSingleFiles = new List<string>
|
||||
private static readonly List<string> _MaaSingleFiles = new List<string>
|
||||
{
|
||||
"resource/Arknights-Tile-Pos/overview.json",
|
||||
"resource/battle_data.json",
|
||||
@@ -34,7 +34,7 @@ namespace MaaWpfGui.Models
|
||||
"resource/global/YoStarKR/resource/version.json",
|
||||
};
|
||||
|
||||
private const string MaaDynamicFilesIndex = "resource/dynamic_list.txt";
|
||||
private static readonly string _MaaDynamicFilesIndex = "resource/dynamic_list.txt";
|
||||
|
||||
public enum UpdateResult
|
||||
{
|
||||
@@ -63,8 +63,9 @@ namespace MaaWpfGui.Models
|
||||
{
|
||||
_updating = false;
|
||||
|
||||
var ret2 = await UpdateFilesWithIndex();
|
||||
var ret1 = await UpdateSingleFiles();
|
||||
var baseUrl = new Random().Next(5) == 0 ? MaaUrls.MaaResourceApi : MaaUrls.AnnMirrorResourceApi;
|
||||
var ret2 = await UpdateFilesWithIndex(baseUrl);
|
||||
var ret1 = await UpdateSingleFiles(baseUrl);
|
||||
ETagCache.Save();
|
||||
|
||||
if (ret1 == UpdateResult.Failed || ret2 == UpdateResult.Failed)
|
||||
@@ -80,24 +81,27 @@ namespace MaaWpfGui.Models
|
||||
return UpdateResult.NotModified;
|
||||
}
|
||||
|
||||
private static async Task<UpdateResult> UpdateSingleFiles()
|
||||
private static async Task<UpdateResult> UpdateSingleFiles(string baseUrl)
|
||||
{
|
||||
UpdateResult ret = UpdateResult.NotModified;
|
||||
|
||||
foreach (var file in _maaSingleFiles)
|
||||
foreach (var file in _MaaSingleFiles)
|
||||
{
|
||||
var sRet = await UpdateFileWithETag(MaaUrls.MaaResourceApi, file, file);
|
||||
var sRet = await UpdateFileWithETag(baseUrl, file, file);
|
||||
|
||||
switch (sRet)
|
||||
{
|
||||
case UpdateResult.Failed:
|
||||
ret = UpdateResult.Failed;
|
||||
break;
|
||||
|
||||
case UpdateResult.Success:
|
||||
ETagCache.Save();
|
||||
break;
|
||||
|
||||
case UpdateResult.NotModified:
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
@@ -113,24 +117,28 @@ namespace MaaWpfGui.Models
|
||||
|
||||
// 地图文件、掉落材料的图片、基建技能图片
|
||||
// 这些文件数量不固定,需要先获取索引文件,再根据索引文件下载
|
||||
private static async Task<UpdateResult> UpdateFilesWithIndex()
|
||||
private static async Task<UpdateResult> UpdateFilesWithIndex(string baseUrl)
|
||||
{
|
||||
var indexSRet = await UpdateFileWithETag(MaaUrls.MaaResourceApi, MaaDynamicFilesIndex, MaaDynamicFilesIndex);
|
||||
var indexSRet = await UpdateFileWithETag(baseUrl, _MaaDynamicFilesIndex, _MaaDynamicFilesIndex);
|
||||
switch (indexSRet)
|
||||
{
|
||||
case UpdateResult.Failed:
|
||||
return UpdateResult.Failed;
|
||||
|
||||
case UpdateResult.Success:
|
||||
ETagCache.Save();
|
||||
break;
|
||||
|
||||
case UpdateResult.NotModified:
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
var indexPath = Path.Combine(Environment.CurrentDirectory, MaaDynamicFilesIndex);
|
||||
if (!File.Exists(indexPath)) {
|
||||
var indexPath = Path.Combine(Environment.CurrentDirectory, _MaaDynamicFilesIndex);
|
||||
if (!File.Exists(indexPath))
|
||||
{
|
||||
return UpdateResult.Failed;
|
||||
}
|
||||
|
||||
@@ -154,7 +162,7 @@ namespace MaaWpfGui.Models
|
||||
return;
|
||||
}
|
||||
|
||||
var sRet = await UpdateFileWithETag(MaaUrls.MaaResourceApi, file, file);
|
||||
var sRet = await UpdateFileWithETag(baseUrl, file, file);
|
||||
if (sRet == UpdateResult.Failed)
|
||||
{
|
||||
ret = UpdateResult.Failed;
|
||||
|
||||
Reference in New Issue
Block a user