Browse Source

Reformat message.py file

pull/6836/head
Rapptz 4 years ago
parent
commit
135a7e9e5a
  1. 92
      discord/message.py

92
discord/message.py

@ -74,6 +74,7 @@ __all__ = (
'DeletedReferencedMessage', 'DeletedReferencedMessage',
) )
def convert_emoji_reaction(emoji): def convert_emoji_reaction(emoji):
if isinstance(emoji, Reaction): if isinstance(emoji, Reaction):
emoji = emoji.emoji emoji = emoji.emoji
@ -89,6 +90,7 @@ def convert_emoji_reaction(emoji):
raise InvalidArgument(f'emoji argument must be str, Emoji, or Reaction not {emoji.__class__.__name__}.') raise InvalidArgument(f'emoji argument must be str, Emoji, or Reaction not {emoji.__class__.__name__}.')
class Attachment(Hashable): class Attachment(Hashable):
"""Represents an attachment from Discord. """Represents an attachment from Discord.
@ -161,7 +163,13 @@ class Attachment(Hashable):
def __str__(self) -> str: def __str__(self) -> str:
return self.url or '' return self.url or ''
async def save(self, fp: Union[io.BufferedIOBase, PathLike], *, seek_begin: bool = True, use_cached: bool = False) -> int: async def save(
self,
fp: Union[io.BufferedIOBase, PathLike],
*,
seek_begin: bool = True,
use_cached: bool = False,
) -> int:
"""|coro| """|coro|
Saves this attachment into a file-like object. Saves this attachment into a file-like object.
@ -299,6 +307,7 @@ class Attachment(Hashable):
result['content_type'] = self.content_type result['content_type'] = self.content_type
return result return result
class DeletedReferencedMessage: class DeletedReferencedMessage:
"""A special sentinel type that denotes whether the """A special sentinel type that denotes whether the
resolved message referenced message had since been deleted. resolved message referenced message had since been deleted.
@ -309,7 +318,7 @@ class DeletedReferencedMessage:
.. versionadded:: 1.6 .. versionadded:: 1.6
""" """
__slots__ = ('_parent') __slots__ = ('_parent',)
def __init__(self, parent: MessageReference): def __init__(self, parent: MessageReference):
self._parent = parent self._parent = parent
@ -409,7 +418,12 @@ class MessageReference:
:class:`MessageReference` :class:`MessageReference`
A reference to the message. A reference to the message.
""" """
self = cls(message_id=message.id, channel_id=message.channel.id, guild_id=getattr(message.guild, 'id', None), fail_if_not_exists=fail_if_not_exists) self = cls(
message_id=message.id,
channel_id=message.channel.id,
guild_id=getattr(message.guild, 'id', None),
fail_if_not_exists=fail_if_not_exists,
)
self._state = message._state self._state = message._state
return self return self
@ -441,6 +455,7 @@ class MessageReference:
to_message_reference_dict = to_dict to_message_reference_dict = to_dict
def flatten_handlers(cls): def flatten_handlers(cls):
prefix = len('_handle_') prefix = len('_handle_')
handlers = [ handlers = [
@ -452,11 +467,10 @@ def flatten_handlers(cls):
# store _handle_member last # store _handle_member last
handlers.append(('member', cls._handle_member)) handlers.append(('member', cls._handle_member))
cls._HANDLERS = handlers cls._HANDLERS = handlers
cls._CACHED_SLOTS = [ cls._CACHED_SLOTS = [attr for attr in cls.__slots__ if attr.startswith('_cs_')]
attr for attr in cls.__slots__ if attr.startswith('_cs_')
]
return cls return cls
@flatten_handlers @flatten_handlers
class Message(Hashable): class Message(Hashable):
r"""Represents a message from Discord. r"""Represents a message from Discord.
@ -568,19 +582,49 @@ class Message(Hashable):
.. versionadded:: 1.6 .. versionadded:: 1.6
""" """
__slots__ = ('_edited_timestamp', 'tts', 'content', 'channel', 'webhook_id', __slots__ = (
'mention_everyone', 'embeds', 'id', 'mentions', 'author', '_state',
'_cs_channel_mentions', '_cs_raw_mentions', 'attachments', '_edited_timestamp',
'_cs_clean_content', '_cs_raw_channel_mentions', 'nonce', 'pinned', '_cs_channel_mentions',
'role_mentions', '_cs_raw_role_mentions', 'type', 'flags', '_cs_raw_mentions',
'_cs_system_content', '_cs_guild', '_state', 'reactions', 'reference', '_cs_clean_content',
'application', 'activity', 'stickers') '_cs_raw_channel_mentions',
'_cs_raw_role_mentions',
'_cs_system_content',
'_cs_guild',
'tts',
'content',
'channel',
'webhook_id',
'mention_everyone',
'embeds',
'id',
'mentions',
'author',
'attachments',
'nonce',
'pinned',
'role_mentions',
'type',
'flags',
'reactions',
'reference',
'application',
'activity',
'stickers',
)
if TYPE_CHECKING: if TYPE_CHECKING:
_HANDLERS: ClassVar[List[Tuple[str, Callable[..., None]]]] _HANDLERS: ClassVar[List[Tuple[str, Callable[..., None]]]]
_CACHED_SLOTS: ClassVar[List[str]] _CACHED_SLOTS: ClassVar[List[str]]
def __init__(self, *, state: ConnectionState, channel: Union[TextChannel, DMChannel, GroupChannel], data: MessagePayload): def __init__(
self,
*,
state: ConnectionState,
channel: Union[TextChannel, DMChannel, GroupChannel],
data: MessagePayload,
):
self._state = state self._state = state
self.id = int(data['id']) self.id = int(data['id'])
self.webhook_id = utils._get_as_snowflake(data, 'webhook_id') self.webhook_id = utils._get_as_snowflake(data, 'webhook_id')
@ -629,7 +673,9 @@ class Message(Hashable):
continue continue
def __repr__(self) -> str: def __repr__(self) -> str:
return f'<Message id={self.id} channel={self.channel!r} type={self.type!r} author={self.author!r} flags={self.flags!r}>' return (
f'<Message id={self.id} channel={self.channel!r} type={self.type!r} author={self.author!r} flags={self.flags!r}>'
)
def _try_patch(self, data, key, transform=None) -> None: def _try_patch(self, data, key, transform=None) -> None:
try: try:
@ -851,6 +897,7 @@ class Message(Hashable):
respectively, along with this function. respectively, along with this function.
""" """
# fmt: off
transformations = { transformations = {
re.escape(f'<#{channel.id}>'): '#' + channel.name re.escape(f'<#{channel.id}>'): '#' + channel.name
for channel in self.channel_mentions for channel in self.channel_mentions
@ -877,6 +924,8 @@ class Message(Hashable):
} }
transformations.update(role_transforms) transformations.update(role_transforms)
# fmt: on
def repl(obj): def repl(obj):
return transformations.get(re.escape(obj.group(0)), '') return transformations.get(re.escape(obj.group(0)), '')
@ -1016,6 +1065,7 @@ class Message(Hashable):
Deleting the message failed. Deleting the message failed.
""" """
if delay is not None: if delay is not None:
async def delete(delay: float): async def delete(delay: float):
await asyncio.sleep(delay) await asyncio.sleep(delay)
try: try:
@ -1097,9 +1147,9 @@ class Message(Hashable):
except KeyError: except KeyError:
pass pass
else: else:
flags = MessageFlags._from_value(self.flags.value) flags = MessageFlags._from_value(self.flags.value)
flags.suppress_embeds = suppress flags.suppress_embeds = suppress
fields['flags'] = flags.value fields['flags'] = flags.value
delete_after = fields.pop('delete_after', None) delete_after = fields.pop('delete_after', None)
@ -1555,9 +1605,9 @@ class PartialMessage(Hashable):
except KeyError: except KeyError:
pass pass
else: else:
flags = MessageFlags._from_value(0) flags = MessageFlags._from_value(0)
flags.suppress_embeds = suppress flags.suppress_embeds = suppress
fields['flags'] = flags.value fields['flags'] = flags.value
delete_after = fields.pop('delete_after', None) delete_after = fields.pop('delete_after', None)

Loading…
Cancel
Save