|
33 | 33 |
|
34 | 34 | from typing_extensions import Self, TypeVar, override |
35 | 35 |
|
36 | | -from ..abc import Messageable, Snowflake, User, _Overwrites |
| 36 | +from ..abc import Messageable, Snowflake, SnowflakeTime, User, _Overwrites, _purge_messages_helper |
37 | 37 | from ..emoji import GuildEmoji, PartialEmoji |
38 | 38 | from ..enums import ChannelType, InviteTarget, SortOrder, try_enum |
| 39 | +from ..errors import ClientException |
39 | 40 | from ..flags import ChannelFlags, MessageFlags |
40 | 41 | from ..iterators import ArchivedThreadIterator |
41 | 42 | from ..mixins import Hashable |
42 | 43 | from ..utils import MISSING, Undefined, find, snowflake_time |
43 | | -from ..utils.private import copy_doc, get_as_snowflake |
| 44 | +from ..utils.private import SnowflakeList, bytes_to_base64_data, copy_doc, get_as_snowflake |
44 | 45 |
|
45 | 46 | if TYPE_CHECKING: |
46 | 47 | from ..embeds import Embed |
|
50 | 51 | from ..invite import Invite |
51 | 52 | from ..member import Member |
52 | 53 | from ..mentions import AllowedMentions |
53 | | - from ..message import EmojiInputType, Message |
| 54 | + from ..message import EmojiInputType, Message, PartialMessage |
54 | 55 | from ..object import Object |
55 | 56 | from ..partial_emoji import _EmojiTag |
56 | 57 | from ..permissions import PermissionOverwrite, Permissions |
|
69 | 70 | from ..types.channel import VoiceChannel as VoiceChannelPayload |
70 | 71 | from ..types.guild import ChannelPositionUpdate as ChannelPositionUpdatePayload |
71 | 72 | from ..ui.view import View |
| 73 | + from ..webhook import Webhook |
72 | 74 | from .category import CategoryChannel |
73 | 75 | from .channel import ForumTag |
| 76 | + from .text import TextChannel |
74 | 77 | from .thread import Thread |
75 | 78 |
|
76 | 79 | _log = logging.getLogger(__name__) |
@@ -1172,7 +1175,7 @@ async def move(self, **kwargs: Any) -> None: |
1172 | 1175 | ) |
1173 | 1176 |
|
1174 | 1177 |
|
1175 | | -class GuildThreadableChannel(ABC): |
| 1178 | +class GuildThreadableChannel: |
1176 | 1179 | """An ABC for guild channels that support thread creation. |
1177 | 1180 |
|
1178 | 1181 | This includes text, news, forum, and media channels. |
@@ -1735,7 +1738,7 @@ async def get_last_message(self) -> Message | None: |
1735 | 1738 | """ |
1736 | 1739 | return await self._state._get_message(self.last_message_id) if self.last_message_id else None |
1737 | 1740 |
|
1738 | | - async def edit(self, **options) -> _TextChannel: |
| 1741 | + async def edit(self, **options) -> Self: |
1739 | 1742 | """Edits the channel.""" |
1740 | 1743 | raise NotImplementedError |
1741 | 1744 |
|
@@ -1807,7 +1810,7 @@ async def purge( |
1807 | 1810 | self, |
1808 | 1811 | *, |
1809 | 1812 | limit: int | None = 100, |
1810 | | - check: Callable[[Message], bool] | utils.Undefined = MISSING, |
| 1813 | + check: Callable[[Message], bool] | Undefined = MISSING, |
1811 | 1814 | before: SnowflakeTime | None = None, |
1812 | 1815 | after: SnowflakeTime | None = None, |
1813 | 1816 | around: SnowflakeTime | None = None, |
@@ -1873,7 +1876,7 @@ def is_me(m): |
1873 | 1876 | deleted = await channel.purge(limit=100, check=is_me) |
1874 | 1877 | await channel.send(f"Deleted {len(deleted)} message(s)") |
1875 | 1878 | """ |
1876 | | - return await discord.abc._purge_messages_helper( |
| 1879 | + return await _purge_messages_helper( |
1877 | 1880 | self, |
1878 | 1881 | limit=limit, |
1879 | 1882 | check=check, |
@@ -1985,6 +1988,7 @@ async def follow(self, *, destination: TextChannel, reason: str | None = None) - |
1985 | 1988 | """ |
1986 | 1989 |
|
1987 | 1990 | from .news import NewsChannel |
| 1991 | + from .text import TextChannel |
1988 | 1992 |
|
1989 | 1993 | if not isinstance(self, NewsChannel): |
1990 | 1994 | raise ClientException("The channel must be a news channel.") |
|
0 commit comments