Browse Source

Logic changes v. 2

pull/2436/head
Fokusnikh 2 years ago
parent
commit
67d3f5d2ce
4 changed files with 9 additions and 25 deletions
  1. +4
    -20
      src/Discord.Net.Rest/DiscordRestApiClient.cs
  2. +1
    -1
      src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
  3. +3
    -3
      src/Discord.Net.Rest/Entities/Channels/ThreadHelper.cs
  4. +1
    -1
      src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs

+ 4
- 20
src/Discord.Net.Rest/DiscordRestApiClient.cs View File

@@ -595,31 +595,15 @@ namespace Discord.API
return await SendAsync<ChannelThreads>("GET", () => $"guilds/{guildId}/threads/active", bucket, options: options);
}

public async Task<ChannelThreads> GetActiveThreadsInChannelAsync(ulong guildId, ulong parentChannel, RequestOptions options = null)
public async Task<ChannelThreads> GetActiveThreadsInChannelAsync(ulong channelId, RequestOptions options = null)
{
Preconditions.NotEqual(guildId, 0, nameof(guildId));
Preconditions.NotEqual(channelId, 0, nameof(channelId));

options = RequestOptions.CreateOrClone(options);

var bucket = new BucketIds(guildId: guildId);

ChannelThreads allChannelThreads = await SendAsync<ChannelThreads>("GET", () => $"guilds/{guildId}/threads/active", bucket, options: options);
ChannelThreads filteredThreads = new ChannelThreads();

filteredThreads.Threads = allChannelThreads.Threads.Where(x => x.CategoryId == parentChannel).ToArray();

List<ThreadMember> members = new List<ThreadMember>();

foreach (ThreadMember m in allChannelThreads.Members)
{
if (filteredThreads.Threads.Where(x => x.Id == (ulong)m.Id).Count() == 0)
continue;
members.Add(m);
}

filteredThreads.Members = members.ToArray();
var bucket = new BucketIds(channelId: channelId);

return filteredThreads;
return await SendAsync<ChannelThreads>("GET", () => $"channels/{channelId}/threads/active", bucket, options: options);
}

public async Task<ChannelThreads> GetPublicArchivedThreadsAsync(ulong channelId, DateTimeOffset? before = null, int? limit = null, RequestOptions options = null)


+ 1
- 1
src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs View File

@@ -236,7 +236,7 @@ namespace Discord.Rest

/// <inheritdoc cref="IGuildChannel.GetActiveThreadsAsync(RequestOptions)"/>
public Task<IReadOnlyCollection<RestThreadChannel>> GetActiveThreadsAsync(RequestOptions options = null)
=> ThreadHelper.GetActiveThreadsInChannelAsync(Guild, this, Discord, options);
=> ThreadHelper.GetActiveThreadsInChannelAsync(this, Discord, options);

/// <inheritdoc cref="IGuildChannel.GetPublicArchivedThreadsAsync(int?, DateTimeOffset?, RequestOptions)"/>
public Task<IReadOnlyCollection<RestThreadChannel>> GetPublicArchivedThreadsAsync(int? limit = null, DateTimeOffset? before = null, RequestOptions options = null)


+ 3
- 3
src/Discord.Net.Rest/Entities/Channels/ThreadHelper.cs View File

@@ -67,10 +67,10 @@ namespace Discord.Rest
var result = await client.ApiClient.GetActiveThreadsAsync(guild.Id, options).ConfigureAwait(false);
return result.Threads.Select(x => RestThreadChannel.Create(client, guild, x)).ToImmutableArray();
}
public static async Task<IReadOnlyCollection<RestThreadChannel>> GetActiveThreadsInChannelAsync(IGuild guild, IGuildChannel parentChannel, BaseDiscordClient client, RequestOptions options)
public static async Task<IReadOnlyCollection<RestThreadChannel>> GetActiveThreadsInChannelAsync(IGuildChannel channel, BaseDiscordClient client, RequestOptions options)
{
var result = await client.ApiClient.GetActiveThreadsInChannelAsync(guild.Id, parentChannel.Id, options).ConfigureAwait(false);
return result.Threads.Select(x => RestThreadChannel.Create(client, guild, x)).ToImmutableArray();
var result = await client.ApiClient.GetActiveThreadsInChannelAsync(channel.Id, options).ConfigureAwait(false);
return result.Threads.Select(x => RestThreadChannel.Create(client, channel.Guild, x)).ToImmutableArray();
}

public static async Task<IReadOnlyCollection<RestThreadChannel>> GetPublicArchivedThreadsAsync(IGuildChannel channel, BaseDiscordClient client, int? limit = null,


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs View File

@@ -179,7 +179,7 @@ namespace Discord.WebSocket

/// <inheritdoc cref="IGuildChannel.GetActiveThreadsAsync(RequestOptions)"/>
public Task<IReadOnlyCollection<RestThreadChannel>> GetActiveThreadsAsync(RequestOptions options = null)
=> ThreadHelper.GetActiveThreadsInChannelAsync(Guild, this, Discord, options);
=> ThreadHelper.GetActiveThreadsInChannelAsync(this, Discord, options);

/// <inheritdoc cref="IGuildChannel.GetPublicArchivedThreadsAsync(int?, DateTimeOffset?, RequestOptions)"/>
public Task<IReadOnlyCollection<RestThreadChannel>> GetPublicArchivedThreadsAsync(int? limit = null, DateTimeOffset? before = null, RequestOptions options = null)


Loading…
Cancel
Save