Table of Contents

Interface IThreadChannel

Namespace
Kook
Assembly
Kook.Net.Core.dll

表示服务器中一个通用的帖子频道,可以浏览、发布和回复帖子。

public interface IThreadChannel : INestedChannel, IGuildChannel, IChannel, IEntity<ulong>, IDeletable, IMentionable
Inherited Members
Extension Methods

Properties

DefaultLayout

获取此频道设置的帖子默认布局。

ThreadLayout? DefaultLayout { get; }

Property Value

ThreadLayout?

DefaultSortOrder

获取此频道设置的帖子默认排序。

ThreadSortOrder? DefaultSortOrder { get; }

Property Value

ThreadSortOrder?

PostCreationInterval

获取此频道设置的发帖速率限制。

int PostCreationInterval { get; }

Property Value

int

一个 int,表示用户在可以发布另一条帖子之前需要等待的时间(以秒为单位);如果未启用,则为 0

Remarks

拥有 ManageMessagesManageChannels 权限的用户不受慢速模式延迟的限制。

ReplyInterval

获取此频道设置的回帖速率限制。

int? ReplyInterval { get; }

Property Value

int?

一个 int,表示用户在可以对任意帖子发布另一条回复之前需要等待的时间(以秒为单位);如果未启用,则为 0

Remarks

拥有 ManageMessagesManageChannels 权限的用户不受慢速模式延迟的限制。

Topic

获取此频道的说明。

string Topic { get; }

Property Value

string

Methods

CreateThreadAsync(string, ICard, string?, IThreadCategory?, IEnumerable<ThreadTag>?, RequestOptions?)

发布一个新的帖子到此帖子频道。

Task<IThread> CreateThreadAsync(string title, ICard card, string? cover = null, IThreadCategory? category = null, IEnumerable<ThreadTag>? tags = null, RequestOptions? options = null)

Parameters

title string

帖子标题。

card ICard

帖子的卡片内容。

cover string

帖子封面的图片链接。

category IThreadCategory

帖子的分区。

tags IEnumerable<ThreadTag>

帖子的话题标签。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IThread>

一个表示异步修改操作的任务。任务的结果包含新创建的帖子。

CreateThreadAsync(string, IEnumerable<ICard>, string?, IThreadCategory?, IEnumerable<ThreadTag>?, RequestOptions?)

发布一个新的帖子到此帖子频道。

Task<IThread> CreateThreadAsync(string title, IEnumerable<ICard> cards, string? cover = null, IThreadCategory? category = null, IEnumerable<ThreadTag>? tags = null, RequestOptions? options = null)

Parameters

title string

帖子标题。

cards IEnumerable<ICard>

帖子的卡片内容。

cover string

帖子封面的图片链接。

category IThreadCategory

帖子的分区。

tags IEnumerable<ThreadTag>

帖子的话题标签。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IThread>

一个表示异步修改操作的任务。任务的结果包含新创建的帖子。

CreateThreadAsync(string, string, bool, string?, IThreadCategory?, IEnumerable<ThreadTag>?, RequestOptions?)

发布一个新的帖子到此帖子频道。

Task<IThread> CreateThreadAsync(string title, string content, bool isKMarkdown = false, string? cover = null, IThreadCategory? category = null, IEnumerable<ThreadTag>? tags = null, RequestOptions? options = null)

Parameters

title string

帖子标题。

content string

帖子文本内容,文本将会被包装在无侧边卡片内发送。

isKMarkdown bool

是否为 KMarkdown 格式。

cover string

帖子封面的图片链接。

category IThreadCategory

帖子的分区。

tags IEnumerable<ThreadTag>

帖子的话题标签。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IThread>

一个表示异步修改操作的任务。任务的结果包含新创建的帖子。

DeleteThreadAsync(IThread, RequestOptions?)

删除一个帖子。

Task DeleteThreadAsync(IThread thread, RequestOptions? options = null)

Parameters

thread IThread

要删除的帖子。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步删除操作的任务。

DeleteThreadAsync(ulong, RequestOptions?)

删除一个帖子。

Task DeleteThreadAsync(ulong threadId, RequestOptions? options = null)

Parameters

threadId ulong

要删除的帖子的 ID。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步删除操作的任务。

DeleteThreadContentAsync(IThread, RequestOptions?)

删除一个帖子的主楼内容。

Task DeleteThreadContentAsync(IThread thread, RequestOptions? options = null)

Parameters

thread IThread

要删除其主楼内容的帖子。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步删除操作的任务。

Remarks

当帖子无任何评论时,删除主楼内容会导致帖子被删除。

DeleteThreadContentAsync(ulong, RequestOptions?)

删除一个帖子的主楼内容。

Task DeleteThreadContentAsync(ulong threadId, RequestOptions? options = null)

Parameters

threadId ulong

要删除其主楼内容的帖子的 ID。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步删除操作的任务。

Remarks

当帖子无任何评论时,删除主楼内容会导致帖子被删除。

GetThreadAsync(ulong, RequestOptions?)

从此帖子频道获取一个帖子。

Task<IThread> GetThreadAsync(ulong id, RequestOptions? options = null)

Parameters

id ulong

帖子的 ID。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IThread>

一个表示异步获取操作的任务。任务结果包含具有指定 ID 的帖子。

GetThreadCategoriesAsync(RequestOptions?)

获取此帖子频道的所有帖子分区。

Task<IReadOnlyCollection<IThreadCategory>> GetThreadCategoriesAsync(RequestOptions? options = null)

Parameters

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IReadOnlyCollection<IThreadCategory>>

一个表示异步修改操作的任务。任务的结果包含此帖子频道的所有帖子分区。

GetThreadsAsync(IThread, ThreadSortOrder, int, IThreadCategory?, RequestOptions?)

获取此帖子频道中的一些帖子。

IAsyncEnumerable<IReadOnlyCollection<IThread>> GetThreadsAsync(IThread referenceThread, ThreadSortOrder sortOrder = ThreadSortOrder.CreationTime, int limit = 30, IThreadCategory? category = null, RequestOptions? options = null)

Parameters

referenceThread IThread

要开始获取帖子的参考位置的帖子,获取的结果不包含此帖子。

sortOrder ThreadSortOrder

获取帖子列表的排序方式。

limit int

要获取的帖子数量。

category IThreadCategory

要获取的帖子所在的分区,如果为 null,则获取所有分区的帖子。

options RequestOptions

发送请求时要使用的选项。

Returns

IAsyncEnumerable<IReadOnlyCollection<IThread>>

分页的帖子集合的异步可枚举对象。

Remarks

important

返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。


warning

请勿一次性获取过多帖子,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。


此方法将尝试获取此频道最新的 limit 条帖子。此方法会根据 MaxMessagesPerBatch 将请求拆分。换句话说,如果要获取 500 条帖子,而 MaxMessagesPerBatch 的常量为 50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。

GetThreadsAsync(DateTimeOffset, ThreadSortOrder, int, IThreadCategory?, RequestOptions?)

获取此帖子频道中的一些帖子。

IAsyncEnumerable<IReadOnlyCollection<IThread>> GetThreadsAsync(DateTimeOffset referenceTimestamp, ThreadSortOrder sortOrder = ThreadSortOrder.CreationTime, int limit = 30, IThreadCategory? category = null, RequestOptions? options = null)

Parameters

referenceTimestamp DateTimeOffset

要开始获取帖子的参考位置的帖子的创建时间或最后活跃时间,由 sortOrder 参数决定,获取的结果不包含其时间为此值的帖子。

sortOrder ThreadSortOrder

获取帖子列表的排序方式。

limit int

要获取的帖子数量。

category IThreadCategory

要获取的帖子所在的分区,如果为 null,则获取所有分区的帖子。

options RequestOptions

发送请求时要使用的选项。

Returns

IAsyncEnumerable<IReadOnlyCollection<IThread>>

分页的帖子集合的异步可枚举对象。

Remarks

important

返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。


warning

请勿一次性获取过多帖子,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。


此方法将尝试获取此频道最新的 limit 条帖子。此方法会根据 MaxThreadsPerBatch 将请求拆分。换句话说,如果要获取 500 条帖子,而 MaxThreadsPerBatch 的常量为 50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。

GetThreadsAsync(int, IThreadCategory?, RequestOptions?)

获取此帖子频道中的最新的一些帖子。

IAsyncEnumerable<IReadOnlyCollection<IThread>> GetThreadsAsync(int limit = 30, IThreadCategory? category = null, RequestOptions? options = null)

Parameters

limit int

要获取的帖子数量。

category IThreadCategory

要获取的帖子所在的分区,如果为 null,则获取所有分区的帖子。

options RequestOptions

发送请求时要使用的选项。

Returns

IAsyncEnumerable<IReadOnlyCollection<IThread>>

分页的帖子集合的异步可枚举对象。

Remarks

important

返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。


warning

请勿一次性获取过多帖子,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。


此方法将尝试获取此频道最新的 limit 条帖子。此方法会根据 MaxThreadsPerBatch 将请求拆分。换句话说,如果要获取 300 条帖子,而 MaxThreadsPerBatch 的常量为 30,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。

ModifyAsync(Action<ModifyThreadChannelProperties>, RequestOptions?)

修改此频道的属性。

Task ModifyAsync(Action<ModifyThreadChannelProperties> func, RequestOptions? options = null)

Parameters

func Action<ModifyThreadChannelProperties>

一个包含修改帖子频道的属性的委托。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步修改操作的任务。

See Also