diff --git a/discord/abc.py b/discord/abc.py index 34622c99e..387e79335 100644 --- a/discord/abc.py +++ b/discord/abc.py @@ -48,7 +48,7 @@ from typing import ( from .object import OLDEST_OBJECT, Object from .context_managers import Typing -from .enums import ApplicationCommandType, ChannelType, InviteTarget +from .enums import ApplicationCommandType, ChannelType, InviteTarget, NetworkConnectionType from .errors import ClientException from .mentions import AllowedMentions from .permissions import PermissionOverwrite, Permissions @@ -1869,6 +1869,7 @@ class Messageable: mention_author=mention_author, stickers=sticker_ids, flags=flags, + network_type=NetworkConnectionType.unknown, ) as params: data = await state.http.send_message(channel.id, params=params) diff --git a/discord/enums.py b/discord/enums.py index bc1e107f2..7e80e009d 100644 --- a/discord/enums.py +++ b/discord/enums.py @@ -122,6 +122,8 @@ __all__ = ( 'DirectoryEntryType', 'DirectoryCategory', 'HubType', + 'NetworkConnectionType', + 'NetworkConnectionSpeed', ) if TYPE_CHECKING: @@ -1599,6 +1601,32 @@ class HubType(Enum): university = 2 +class NetworkConnectionType(Enum): + bluetooth = 'bluetooth' + cellular = 'cellular' + ethernet = 'ethernet' + none = 'none' + other = 'other' + unknown = 'unknown' + wifi = 'wifi' + wimax = 'wimax' + + def __str__(self) -> str: + return self.value + + +class NetworkConnectionSpeed(Enum): + five_g = '5g' + four_g = '4g' + three_g = '3g' + two_g = '2g' + slow_two_g = 'slow-2g' + unknown = 'unknown' + + def __str__(self) -> str: + return self.value + + def create_unknown_value(cls: Type[E], val: Any) -> E: value_cls = cls._enum_value_cls_ # type: ignore # This is narrowed below name = f'unknown_{val}' diff --git a/discord/http.py b/discord/http.py index 19adad036..a07b8bb7f 100644 --- a/discord/http.py +++ b/discord/http.py @@ -54,7 +54,7 @@ import datetime import aiohttp -from .enums import RelationshipAction, InviteType +from .enums import NetworkConnectionType, RelationshipAction, InviteType from .errors import ( HTTPException, RateLimited, @@ -239,6 +239,7 @@ def handle_message_parameters( previous_allowed_mentions: Optional[AllowedMentions] = None, mention_author: Optional[bool] = None, thread_name: str = MISSING, + network_type: NetworkConnectionType = MISSING, channel_payload: Dict[str, Any] = MISSING, ) -> MultipartParameters: if files is not MISSING and file is not MISSING: @@ -295,6 +296,9 @@ def handle_message_parameters( if thread_name is not MISSING: payload['thread_name'] = thread_name + if network_type is not MISSING: + payload['mobile_network_type'] = str(network_type) + if allowed_mentions: if previous_allowed_mentions is not None: payload['allowed_mentions'] = previous_allowed_mentions.merge(allowed_mentions).to_dict()