mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-20 16:00:29 +00:00
Return a named tuple with message from ForumChannel.create_thread
This commit is contained in:
parent
a704666ce3
commit
7f210c90f4
@ -33,6 +33,7 @@ from typing import (
|
||||
List,
|
||||
Literal,
|
||||
Mapping,
|
||||
NamedTuple,
|
||||
Optional,
|
||||
TYPE_CHECKING,
|
||||
Sequence,
|
||||
@ -96,6 +97,11 @@ if TYPE_CHECKING:
|
||||
from .types.snowflake import SnowflakeList
|
||||
|
||||
|
||||
class ThreadWithMessage(NamedTuple):
|
||||
thread: Thread
|
||||
message: Message
|
||||
|
||||
|
||||
class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
|
||||
"""Represents a Discord guild text channel.
|
||||
|
||||
@ -2159,7 +2165,7 @@ class ForumChannel(discord.abc.GuildChannel, Hashable):
|
||||
view: View = MISSING,
|
||||
suppress_embeds: bool = False,
|
||||
reason: Optional[str] = None,
|
||||
) -> Thread:
|
||||
) -> ThreadWithMessage:
|
||||
"""|coro|
|
||||
|
||||
Creates a thread in this forum.
|
||||
@ -2222,8 +2228,9 @@ class ForumChannel(discord.abc.GuildChannel, Hashable):
|
||||
|
||||
Returns
|
||||
--------
|
||||
:class:`Thread`
|
||||
The created thread
|
||||
Tuple[:class:`Thread`, :class:`Message`]
|
||||
The created thread with the created message.
|
||||
This is also accessible as a namedtuple with ``thread`` and ``message`` fields.
|
||||
"""
|
||||
|
||||
state = self._state
|
||||
@ -2267,8 +2274,16 @@ class ForumChannel(discord.abc.GuildChannel, Hashable):
|
||||
flags=flags,
|
||||
channel_payload=channel_payload,
|
||||
) as params:
|
||||
# Circular import
|
||||
from .message import Message
|
||||
|
||||
data = await state.http.start_thread_in_forum(self.id, params=params, reason=reason)
|
||||
return Thread(guild=self.guild, state=self._state, data=data)
|
||||
thread = Thread(guild=self.guild, state=self._state, data=data)
|
||||
message = Message(state=self._state, channel=thread, data=data['message'])
|
||||
if view:
|
||||
self._state.store_view(view, message.id)
|
||||
|
||||
return ThreadWithMessage(thread=thread, message=message)
|
||||
|
||||
|
||||
class DMChannel(discord.abc.Messageable, Hashable):
|
||||
|
@ -990,7 +990,7 @@ class HTTPClient:
|
||||
*,
|
||||
params: MultipartParameters,
|
||||
reason: Optional[str] = None,
|
||||
) -> Response[threads.Thread]:
|
||||
) -> Response[threads.ForumThread]:
|
||||
query = {'use_nested_fields': 1}
|
||||
r = Route('POST', '/channels/{channel_id}/threads', channel_id=channel_id)
|
||||
if params.files:
|
||||
|
@ -28,6 +28,7 @@ from typing import List, Literal, Optional, TypedDict
|
||||
from typing_extensions import NotRequired
|
||||
|
||||
from .snowflake import Snowflake
|
||||
from .message import Message
|
||||
|
||||
ThreadType = Literal[10, 11, 12]
|
||||
ThreadArchiveDuration = Literal[60, 1440, 4320, 10080]
|
||||
@ -72,3 +73,7 @@ class ThreadPaginationPayload(TypedDict):
|
||||
threads: List[Thread]
|
||||
members: List[ThreadMember]
|
||||
has_more: bool
|
||||
|
||||
|
||||
class ForumThread(Thread):
|
||||
message: Message
|
||||
|
Loading…
x
Reference in New Issue
Block a user