Different method of upgrading user instances
This commit is contained in:
parent
e75c248a9a
commit
5c1b239b47
@ -189,11 +189,7 @@ class Member(discord.abc.Messageable, _BaseUser):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def _from_message(cls, *, message, data):
|
def _from_message(cls, *, message, data):
|
||||||
author = message.author
|
author = message.author
|
||||||
data['user'] = {
|
data['user'] = author._to_minimal_user_json()
|
||||||
attr: getattr(author, attr)
|
|
||||||
for attr in author.__slots__
|
|
||||||
if attr[0] != '_'
|
|
||||||
}
|
|
||||||
return cls(data=data, guild=message.guild, state=message._state)
|
return cls(data=data, guild=message.guild, state=message._state)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -403,9 +403,12 @@ class Message:
|
|||||||
# ourselves to a more "partial" member object.
|
# ourselves to a more "partial" member object.
|
||||||
author = self.author
|
author = self.author
|
||||||
try:
|
try:
|
||||||
|
# Update member reference
|
||||||
if author.joined_at is None:
|
if author.joined_at is None:
|
||||||
author.joined_at = utils.parse_time(member.get('joined_at'))
|
author.joined_at = utils.parse_time(member.get('joined_at'))
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
# It's a user here
|
||||||
|
# TODO: consider adding to cache here
|
||||||
self.author = Member._from_message(message=self, data=member)
|
self.author = Member._from_message(message=self, data=member)
|
||||||
|
|
||||||
def _handle_mentions(self, mentions):
|
def _handle_mentions(self, mentions):
|
||||||
|
@ -112,6 +112,15 @@ class BaseUser(_BaseUser):
|
|||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
def _to_minimal_user_json(self):
|
||||||
|
return {
|
||||||
|
'name': self.name,
|
||||||
|
'id': self.id,
|
||||||
|
'avatar': self.avatar,
|
||||||
|
'discriminator': self.discriminator,
|
||||||
|
'bot': self.bot,
|
||||||
|
}
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def avatar_url(self):
|
def avatar_url(self):
|
||||||
"""Returns an :class:`Asset` for the avatar the user has.
|
"""Returns an :class:`Asset` for the avatar the user has.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user