Skip to content

Commit

Permalink
Fix GetGuildBoostSubscriptionsAsync
Browse files Browse the repository at this point in the history
  • Loading branch information
gehongyan committed Nov 20, 2022
1 parent efae1a9 commit 37076d6
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 4 deletions.
5 changes: 5 additions & 0 deletions src/Kook.Net.Core/KookConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,11 @@ public class KookConfig
/// </returns>
public const int MaxIntimacyScore = 2200;

/// <summary>
/// Returns the duration of a Kook boost pack.
/// </summary>
public static readonly TimeSpan BoostPackDuration = TimeSpan.FromDays(30);

/// <summary>
/// Gets or sets how a request should act in the case of an error, by default.
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Kook.Net.Rest/Entities/Guilds/GuildHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static async Task<ImmutableDictionary<IUser, IReadOnlyCollection<BoostSub
IGuild guild, BaseKookClient client, RequestOptions options)
{
IEnumerable<BoostSubscription> 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))
Expand Down
4 changes: 2 additions & 2 deletions src/Kook.Net.Rest/KookRestApiClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -443,8 +443,8 @@ public IAsyncEnumerable<IReadOnlyCollection<BoostSubscription>> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public static async Task<ImmutableDictionary<IUser, IReadOnlyCollection<BoostSub
SocketGuild guild, BaseSocketClient client, RequestOptions options)
{
IEnumerable<BoostSubscription> 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))
Expand Down

0 comments on commit 37076d6

Please sign in to comment.