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
DefaultSortOrder
获取此频道设置的帖子默认排序。
ThreadSortOrder? DefaultSortOrder { get; }
Property Value
PostCreationInterval
获取此频道设置的发帖速率限制。
int PostCreationInterval { get; }
Property Value
- int
一个
int
,表示用户在可以发布另一条帖子之前需要等待的时间(以秒为单位);如果未启用,则为0
。
Remarks
拥有 ManageMessages 或 ManageChannels 权限的用户不受慢速模式延迟的限制。
ReplyInterval
获取此频道设置的回帖速率限制。
int? ReplyInterval { get; }
Property Value
- int?
一个
int
,表示用户在可以对任意帖子发布另一条回复之前需要等待的时间(以秒为单位);如果未启用,则为0
。
Remarks
拥有 ManageMessages 或 ManageChannels 权限的用户不受慢速模式延迟的限制。
Topic
获取此频道的说明。
string Topic { get; }
Property Value
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
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
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
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
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