mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-07-24 03:44:17 +00:00
Add default_reaction_emoji and default_forum_layout to create_forum
This commit is contained in:
parent
198425707e
commit
7db197ef25
@ -74,6 +74,7 @@ from .enums import (
|
|||||||
Locale,
|
Locale,
|
||||||
AutoModRuleEventType,
|
AutoModRuleEventType,
|
||||||
ForumOrderType,
|
ForumOrderType,
|
||||||
|
ForumLayoutType,
|
||||||
)
|
)
|
||||||
from .mixins import Hashable
|
from .mixins import Hashable
|
||||||
from .user import User
|
from .user import User
|
||||||
@ -91,6 +92,7 @@ from .audit_logs import AuditLogEntry
|
|||||||
from .object import OLDEST_OBJECT, Object
|
from .object import OLDEST_OBJECT, Object
|
||||||
from .welcome_screen import WelcomeScreen, WelcomeChannel
|
from .welcome_screen import WelcomeScreen, WelcomeChannel
|
||||||
from .automod import AutoModRule, AutoModTrigger, AutoModRuleAction
|
from .automod import AutoModRule, AutoModTrigger, AutoModRuleAction
|
||||||
|
from .partial_emoji import _EmojiTag, PartialEmoji
|
||||||
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
@ -130,6 +132,7 @@ if TYPE_CHECKING:
|
|||||||
from .types.integration import IntegrationType
|
from .types.integration import IntegrationType
|
||||||
from .types.snowflake import SnowflakeList
|
from .types.snowflake import SnowflakeList
|
||||||
from .types.widget import EditWidgetSettings
|
from .types.widget import EditWidgetSettings
|
||||||
|
from .message import EmojiInputType
|
||||||
|
|
||||||
VocalGuildChannel = Union[VoiceChannel, StageChannel]
|
VocalGuildChannel = Union[VoiceChannel, StageChannel]
|
||||||
GuildChannel = Union[VocalGuildChannel, ForumChannel, TextChannel, CategoryChannel]
|
GuildChannel = Union[VocalGuildChannel, ForumChannel, TextChannel, CategoryChannel]
|
||||||
@ -1605,7 +1608,9 @@ class Guild(Hashable):
|
|||||||
reason: Optional[str] = None,
|
reason: Optional[str] = None,
|
||||||
default_auto_archive_duration: int = MISSING,
|
default_auto_archive_duration: int = MISSING,
|
||||||
default_thread_slowmode_delay: int = MISSING,
|
default_thread_slowmode_delay: int = MISSING,
|
||||||
default_sort_order: Optional[ForumOrderType] = None,
|
default_sort_order: Optional[ForumOrderType] = MISSING,
|
||||||
|
default_reaction_emoji: Optional[EmojiInputType] = MISSING,
|
||||||
|
default_layout: Optional[ForumLayoutType] = MISSING,
|
||||||
available_tags: Sequence[ForumTag] = MISSING,
|
available_tags: Sequence[ForumTag] = MISSING,
|
||||||
) -> ForumChannel:
|
) -> ForumChannel:
|
||||||
"""|coro|
|
"""|coro|
|
||||||
@ -1653,6 +1658,15 @@ class Guild(Hashable):
|
|||||||
default_sort_order: Optional[:class:`ForumOrderType`]
|
default_sort_order: Optional[:class:`ForumOrderType`]
|
||||||
The default sort order for posts in this forum channel.
|
The default sort order for posts in this forum channel.
|
||||||
|
|
||||||
|
.. versionadded:: 2.3
|
||||||
|
default_reaction_emoji: Optional[Union[:class:`Emoji`, :class:`PartialEmoji`, :class:`str`]]
|
||||||
|
The default reaction emoji for threads created in this forum to show in the
|
||||||
|
add reaction button.
|
||||||
|
|
||||||
|
.. versionadded:: 2.3
|
||||||
|
default_layout: Optional[:class:`ForumLayoutType`]
|
||||||
|
The default layout for posts in this forum.
|
||||||
|
|
||||||
.. versionadded:: 2.3
|
.. versionadded:: 2.3
|
||||||
available_tags: Sequence[:class:`ForumTag`]
|
available_tags: Sequence[:class:`ForumTag`]
|
||||||
The available tags for this forum channel.
|
The available tags for this forum channel.
|
||||||
@ -1693,9 +1707,7 @@ class Guild(Hashable):
|
|||||||
if default_thread_slowmode_delay is not MISSING:
|
if default_thread_slowmode_delay is not MISSING:
|
||||||
options['default_thread_rate_limit_per_user'] = default_thread_slowmode_delay
|
options['default_thread_rate_limit_per_user'] = default_thread_slowmode_delay
|
||||||
|
|
||||||
if default_sort_order is None:
|
if default_sort_order not in (MISSING, None):
|
||||||
options['default_sort_order'] = None
|
|
||||||
else:
|
|
||||||
if not isinstance(default_sort_order, ForumOrderType):
|
if not isinstance(default_sort_order, ForumOrderType):
|
||||||
raise TypeError(
|
raise TypeError(
|
||||||
f'default_sort_order parameter must be a ForumOrderType not {default_sort_order.__class__.__name__}'
|
f'default_sort_order parameter must be a ForumOrderType not {default_sort_order.__class__.__name__}'
|
||||||
@ -1703,6 +1715,22 @@ class Guild(Hashable):
|
|||||||
|
|
||||||
options['default_sort_order'] = default_sort_order.value
|
options['default_sort_order'] = default_sort_order.value
|
||||||
|
|
||||||
|
if default_reaction_emoji not in (MISSING, None):
|
||||||
|
if isinstance(default_reaction_emoji, _EmojiTag):
|
||||||
|
options['default_reaction_emoji'] = default_reaction_emoji._to_partial()._to_forum_tag_payload()
|
||||||
|
elif isinstance(default_reaction_emoji, str):
|
||||||
|
options['default_reaction_emoji'] = PartialEmoji.from_str(default_reaction_emoji)._to_forum_tag_payload()
|
||||||
|
else:
|
||||||
|
raise ValueError(f'default_reaction_emoji parameter must be either Emoji, PartialEmoji, or str')
|
||||||
|
|
||||||
|
if default_layout not in (MISSING, None):
|
||||||
|
if not isinstance(default_layout, ForumLayoutType):
|
||||||
|
raise TypeError(
|
||||||
|
f'default_layout parameter must be a ForumLayoutType not {default_layout.__class__.__name__}'
|
||||||
|
)
|
||||||
|
|
||||||
|
options['default_forum_layout'] = default_layout.value
|
||||||
|
|
||||||
if available_tags is not MISSING:
|
if available_tags is not MISSING:
|
||||||
options['available_tags'] = [t.to_dict() for t in available_tags]
|
options['available_tags'] = [t.to_dict() for t in available_tags]
|
||||||
|
|
||||||
|
@ -1191,6 +1191,8 @@ class HTTPClient:
|
|||||||
'default_auto_archive_duration',
|
'default_auto_archive_duration',
|
||||||
'default_thread_rate_limit_per_user',
|
'default_thread_rate_limit_per_user',
|
||||||
'default_sort_order',
|
'default_sort_order',
|
||||||
|
'default_reaction_emoji',
|
||||||
|
'default_forum_layout',
|
||||||
'available_tags',
|
'available_tags',
|
||||||
)
|
)
|
||||||
payload.update({k: v for k, v in options.items() if k in valid_keys and v is not None})
|
payload.update({k: v for k, v in options.items() if k in valid_keys and v is not None})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user