Browse Source

Change Message.application type to IntegrationApplication

pull/10109/head
dolfies 2 years ago
parent
commit
1df4596a3b
  1. 8
      discord/application.py
  2. 26
      discord/message.py
  3. 11
      discord/types/message.py

8
discord/application.py

@ -84,12 +84,12 @@ if TYPE_CHECKING:
ActivityStatistics as ActivityStatisticsPayload,
Application as ApplicationPayload,
Asset as AssetPayload,
BaseApplication as BaseApplicationPayload,
Branch as BranchPayload,
Build as BuildPayload,
Company as CompanyPayload,
EmbeddedActivityConfig as EmbeddedActivityConfigPayload,
GlobalActivityStatistics as GlobalActivityStatisticsPayload,
IntegrationApplication as IntegrationApplicationPayload,
Manifest as ManifestPayload,
ManifestLabel as ManifestLabelPayload,
PartialApplication as PartialApplicationPayload,
@ -3360,14 +3360,14 @@ class IntegrationApplication(Hashable):
'_cover_image',
)
def __init__(self, *, state: ConnectionState, data: IntegrationApplicationPayload):
def __init__(self, *, state: ConnectionState, data: BaseApplicationPayload):
self._state: ConnectionState = state
self._update(data)
def __str__(self) -> str:
return self.name
def _update(self, data: IntegrationApplicationPayload) -> None:
def _update(self, data: BaseApplicationPayload) -> None:
self.id: int = int(data['id'])
self.name: str = data['name']
self.description: str = data.get('description') or ''
@ -3375,7 +3375,7 @@ class IntegrationApplication(Hashable):
self._icon: Optional[str] = data.get('icon')
self._cover_image: Optional[str] = data.get('cover_image')
self.bot: Optional[User] = self._state.create_user(data['bot']) if 'bot' in data else None
self.bot: Optional[User] = self._state.create_user(data['bot']) if 'bot' in data else None # type: ignore
self.primary_sku_id: Optional[int] = utils._get_as_snowflake(data, 'primary_sku_id')
self.role_connections_verification_url: Optional[str] = data.get('role_connections_verification_url')

26
discord/message.py

@ -67,6 +67,7 @@ from .channel import PartialMessageable
from .interactions import Interaction
from .commands import MessageCommand
from .abc import _handle_commands
from .application import IntegrationApplication
if TYPE_CHECKING:
@ -76,7 +77,7 @@ if TYPE_CHECKING:
Message as MessagePayload,
Attachment as AttachmentPayload,
MessageReference as MessageReferencePayload,
MessageApplication as MessageApplicationPayload,
BaseApplication as MessageApplicationPayload,
MessageActivity as MessageActivityPayload,
)
@ -1224,16 +1225,12 @@ class Message(PartialMessage, Hashable):
- ``type``: An integer denoting the type of message activity being requested.
- ``party_id``: The party ID associated with the party.
application: Optional[:class:`dict`]
application: Optional[:class:`IntegrationApplication`]
The rich presence enabled application associated with this message.
It is a dictionary with the following keys:
.. versionchanged:: 2.0
- ``id``: A string representing the application's ID.
- ``name``: A string representing the application's name.
- ``description``: A string representing the application's description.
- ``icon``: A string representing the icon ID of the application.
- ``cover_image``: A string representing the embed's image asset ID.
Type is now :class:`IntegrationApplication` instead of :class:`dict`.
stickers: List[:class:`StickerItem`]
A list of sticker items given to the message.
@ -1311,7 +1308,6 @@ class Message(PartialMessage, Hashable):
self.reactions: List[Reaction] = [Reaction(message=self, data=d) for d in data.get('reactions', [])]
self.attachments: List[Attachment] = [Attachment(data=a, state=self._state) for a in data['attachments']]
self.embeds: List[Embed] = [Embed.from_dict(a) for a in data['embeds']]
self.application: Optional[MessageApplicationPayload] = data.get('application')
self.activity: Optional[MessageActivityPayload] = data.get('activity')
self.channel: MessageableChannel = channel
self._edited_timestamp: Optional[datetime.datetime] = utils.parse_time(data['edited_timestamp'])
@ -1332,8 +1328,15 @@ class Message(PartialMessage, Hashable):
except AttributeError:
self.guild = state._get_guild(utils._get_as_snowflake(data, 'guild_id'))
self.interaction: Optional[Interaction] = None
self.application: Optional[IntegrationApplication] = None
try:
application = data['application']
except KeyError:
pass
else:
self.application = IntegrationApplication(state=self._state, data=application)
self.interaction: Optional[Interaction] = None
try:
interaction = data['interaction']
except KeyError:
@ -1467,7 +1470,8 @@ class Message(PartialMessage, Hashable):
self.flags = MessageFlags._from_value(value)
def _handle_application(self, value: MessageApplicationPayload) -> None:
self.application = value
application = IntegrationApplication(state=self._state, data=value)
self.application = application
def _handle_activity(self, value: MessageActivityPayload) -> None:
self.activity = value

11
discord/types/message.py

@ -35,6 +35,7 @@ from .embed import Embed
from .channel import ChannelType
from .components import Component
from .interactions import MessageInteraction
from .application import BaseApplication
from .sticker import StickerItem
@ -78,14 +79,6 @@ class MessageActivity(TypedDict):
party_id: str
class MessageApplication(TypedDict):
id: Snowflake
description: str
icon: Optional[str]
name: str
cover_image: NotRequired[str]
class MessageReference(TypedDict, total=False):
message_id: Snowflake
channel_id: Snowflake
@ -116,7 +109,7 @@ class Message(PartialMessage):
nonce: NotRequired[Union[int, str]]
webhook_id: NotRequired[Snowflake]
activity: NotRequired[MessageActivity]
application: NotRequired[MessageApplication]
application: NotRequired[BaseApplication]
application_id: NotRequired[Snowflake]
message_reference: NotRequired[MessageReference]
flags: NotRequired[int]

Loading…
Cancel
Save