From 37076d6017b6d25018726dbd2940238306777463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=88=E5=B0=8F=E8=8D=B7?= Date: Sun, 20 Nov 2022 19:57:38 +0800 Subject: [PATCH] Fix GetGuildBoostSubscriptionsAsync --- src/Kook.Net.Core/KookConfig.cs | 5 +++++ src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs | 2 +- src/Kook.Net.Rest/KookRestApiClient.cs | 4 ++-- src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Kook.Net.Core/KookConfig.cs b/src/Kook.Net.Core/KookConfig.cs index d81dc95c..fe66201e 100644 --- a/src/Kook.Net.Core/KookConfig.cs +++ b/src/Kook.Net.Core/KookConfig.cs @@ -130,6 +130,11 @@ public class KookConfig /// public const int MaxIntimacyScore = 2200; + /// + /// Returns the duration of a Kook boost pack. + /// + public static readonly TimeSpan BoostPackDuration = TimeSpan.FromDays(30); + /// /// Gets or sets how a request should act in the case of an error, by default. /// diff --git a/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs b/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs index 7d2064fe..27772184 100644 --- a/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs +++ b/src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs @@ -31,7 +31,7 @@ public static async Task subscriptions = await client.ApiClient - .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now, options: options).FlattenAsync(); + .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now.Add(-KookConfig.BoostPackDuration), options: options).FlattenAsync(); return subscriptions.GroupBy(x => x.UserId) .ToImmutableDictionary(x => RestUser.Create(client, x.First().User) as IUser, x => x.GroupBy(y => (y.StartTime, y.EndTime)) diff --git a/src/Kook.Net.Rest/KookRestApiClient.cs b/src/Kook.Net.Rest/KookRestApiClient.cs index d5b0d45b..8e0c6f9d 100644 --- a/src/Kook.Net.Rest/KookRestApiClient.cs +++ b/src/Kook.Net.Rest/KookRestApiClient.cs @@ -443,8 +443,8 @@ public IAsyncEnumerable> GetGuildBoostSub { Preconditions.NotEqual(guildId, 0, nameof(guildId)); string query = $"guild_id={guildId}"; - if (since.HasValue) query += $"&start_time={since.Value.ToUnixTimeMilliseconds()}"; - if (until.HasValue) query += $"&end_time={until.Value.ToUnixTimeMilliseconds()}"; + if (since.HasValue) query += $"&start_time={since.Value.ToUnixTimeSeconds()}"; + if (until.HasValue) query += $"&end_time={until.Value.ToUnixTimeSeconds()}"; options = RequestOptions.CreateOrClone(options); var ids = new BucketIds(guildId: guildId); diff --git a/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs b/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs index 9d275d55..2bc0b943 100644 --- a/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs +++ b/src/Kook.Net.WebSocket/Entities/Guilds/SocketGuildHelper.cs @@ -33,7 +33,7 @@ public static async Task subscriptions = await client.ApiClient - .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now, options: options).FlattenAsync(); + .GetGuildBoostSubscriptionsAsync(guild.Id, since: DateTimeOffset.Now.Add(-KookConfig.BoostPackDuration), options: options).FlattenAsync(); return subscriptions.GroupBy(x => x.UserId) .ToImmutableDictionary(x => guild.GetUser(x.Key) ?? client.GetUser(x.Key) ?? RestUser.Create(client, x.First().User) as IUser, x => x.GroupBy(y => (y.StartTime, y.EndTime))