fix build

This commit is contained in:
Lightczx
2024-06-17 17:32:01 +08:00
parent d0b07f1308
commit a86caaf229
2 changed files with 25 additions and 24 deletions

View File

@@ -24,51 +24,52 @@ internal sealed partial class HutaoSpiralAbyssService : IHutaoSpiralAbyssService
private readonly IMemoryCache memoryCache;
/// <inheritdoc/>
public ValueTask<Overview> GetOverviewAsync()
public ValueTask<Overview> GetOverviewAsync(bool last = false)
{
return FromCacheOrWebAsync(nameof(Overview), homaClient.GetOverviewAsync);
return FromCacheOrWebAsync(nameof(Overview), last, homaClient.GetOverviewAsync);
}
/// <inheritdoc/>
public ValueTask<List<AvatarAppearanceRank>> GetAvatarAppearanceRanksAsync()
public ValueTask<List<AvatarAppearanceRank>> GetAvatarAppearanceRanksAsync(bool last = false)
{
return FromCacheOrWebAsync(nameof(AvatarAppearanceRank), homaClient.GetAvatarAttendanceRatesAsync);
return FromCacheOrWebAsync(nameof(AvatarAppearanceRank), last, homaClient.GetAvatarAttendanceRatesAsync);
}
/// <inheritdoc/>
public ValueTask<List<AvatarUsageRank>> GetAvatarUsageRanksAsync()
public ValueTask<List<AvatarUsageRank>> GetAvatarUsageRanksAsync(bool last = false)
{
return FromCacheOrWebAsync(nameof(AvatarUsageRank), homaClient.GetAvatarUtilizationRatesAsync);
return FromCacheOrWebAsync(nameof(AvatarUsageRank), last, homaClient.GetAvatarUtilizationRatesAsync);
}
/// <inheritdoc/>
public ValueTask<List<AvatarConstellationInfo>> GetAvatarConstellationInfosAsync()
public ValueTask<List<AvatarConstellationInfo>> GetAvatarConstellationInfosAsync(bool last = false)
{
return FromCacheOrWebAsync(nameof(AvatarConstellationInfo), homaClient.GetAvatarHoldingRatesAsync);
return FromCacheOrWebAsync(nameof(AvatarConstellationInfo), last, homaClient.GetAvatarHoldingRatesAsync);
}
/// <inheritdoc/>
public ValueTask<List<AvatarCollocation>> GetAvatarCollocationsAsync()
public ValueTask<List<AvatarCollocation>> GetAvatarCollocationsAsync(bool last = false)
{
return FromCacheOrWebAsync(nameof(AvatarCollocation), homaClient.GetAvatarCollocationsAsync);
return FromCacheOrWebAsync(nameof(AvatarCollocation), last, homaClient.GetAvatarCollocationsAsync);
}
/// <inheritdoc/>
public ValueTask<List<WeaponCollocation>> GetWeaponCollocationsAsync()
public ValueTask<List<WeaponCollocation>> GetWeaponCollocationsAsync(bool last = false)
{
return FromCacheOrWebAsync(nameof(WeaponCollocation), homaClient.GetWeaponCollocationsAsync);
return FromCacheOrWebAsync(nameof(WeaponCollocation), last, homaClient.GetWeaponCollocationsAsync);
}
/// <inheritdoc/>
public ValueTask<List<TeamAppearance>> GetTeamAppearancesAsync()
public ValueTask<List<TeamAppearance>> GetTeamAppearancesAsync(bool last = false)
{
return FromCacheOrWebAsync(nameof(TeamAppearance), homaClient.GetTeamCombinationsAsync);
return FromCacheOrWebAsync(nameof(TeamAppearance), last, homaClient.GetTeamCombinationsAsync);
}
private async ValueTask<T> FromCacheOrWebAsync<T>(string typeName, Func<CancellationToken, ValueTask<HutaoResponse<T>>> taskFunc)
private async ValueTask<T> FromCacheOrWebAsync<T>(string typeName, bool last, Func<bool, CancellationToken, ValueTask<HutaoResponse<T>>> taskFunc)
where T : class, new()
{
string key = $"{nameof(HutaoSpiralAbyssService)}.Cache.{typeName}";
string kind = last ? "Last" : "Current";
string key = $"{nameof(HutaoSpiralAbyssService)}.Cache.{typeName}.{kind}";
if (memoryCache.TryGetValue(key, out object? cache))
{
T? t = cache as T;
@@ -81,7 +82,7 @@ internal sealed partial class HutaoSpiralAbyssService : IHutaoSpiralAbyssService
return memoryCache.Set(key, value, cacheExpireTime);
}
Response<T> webResponse = await taskFunc(default).ConfigureAwait(false);
Response<T> webResponse = await taskFunc(last, default).ConfigureAwait(false);
T? data = webResponse.Data;
if (data is not null)

View File

@@ -15,41 +15,41 @@ internal interface IHutaoSpiralAbyssService
/// 异步获取角色上场率
/// </summary>
/// <returns>角色上场率</returns>
ValueTask<List<AvatarAppearanceRank>> GetAvatarAppearanceRanksAsync();
ValueTask<List<AvatarAppearanceRank>> GetAvatarAppearanceRanksAsync(bool last = false);
/// <summary>
/// 异步获取角色搭配
/// </summary>
/// <returns>角色搭配</returns>
ValueTask<List<AvatarCollocation>> GetAvatarCollocationsAsync();
ValueTask<List<AvatarCollocation>> GetAvatarCollocationsAsync(bool last = false);
/// <summary>
/// 异步获取角色持有率信息
/// </summary>
/// <returns>角色持有率信息</returns>
ValueTask<List<AvatarConstellationInfo>> GetAvatarConstellationInfosAsync();
ValueTask<List<AvatarConstellationInfo>> GetAvatarConstellationInfosAsync(bool last = false);
/// <summary>
/// 异步获取角色使用率
/// </summary>
/// <returns>角色使用率</returns>
ValueTask<List<AvatarUsageRank>> GetAvatarUsageRanksAsync();
ValueTask<List<AvatarUsageRank>> GetAvatarUsageRanksAsync(bool last = false);
/// <summary>
/// 异步获取统计数据
/// </summary>
/// <returns>统计数据</returns>
ValueTask<Overview> GetOverviewAsync();
ValueTask<Overview> GetOverviewAsync(bool last = false);
/// <summary>
/// 异步获取队伍上场
/// </summary>
/// <returns>队伍上场</returns>
ValueTask<List<TeamAppearance>> GetTeamAppearancesAsync();
ValueTask<List<TeamAppearance>> GetTeamAppearancesAsync(bool last = false);
/// <summary>
/// 异步获取武器搭配
/// </summary>
/// <returns>武器搭配</returns>
ValueTask<List<WeaponCollocation>> GetWeaponCollocationsAsync();
ValueTask<List<WeaponCollocation>> GetWeaponCollocationsAsync(bool last = false);
}