Skip to content

Commit 1f3bdf6

Browse files
committed
feat(user): Fix bot.user.edit not working for username
Signed-off-by: Mathieu Corsham <[email protected]>
1 parent 0eef1d3 commit 1f3bdf6

File tree

2 files changed

+20
-23
lines changed

2 files changed

+20
-23
lines changed

discord/http.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -961,11 +961,7 @@ def guild_voice_state(self, user_id, guild_id, *, mute=None, deafen=None, reason
961961

962962
return self.request(r, json=payload, reason=reason)
963963

964-
def edit_profile(self, avatar, **fields):
965-
payload = {
966-
'avatar': avatar
967-
}
968-
964+
def edit_profile(self, payload):
969965
return self.request(Route('PATCH', '/users/@me'), json=payload)
970966

971967
def change_my_nickname(self, guild_id, nickname, *, reason=None):

discord/user.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
from typing_extensions import Literal
3737

38-
import discord.abc
38+
from . import abc, utils
3939
from .flags import PublicUserFlags
4040
from .utils import snowflake_time, _bytes_to_base64_data
4141
from .enums import DefaultAvatar, try_enum
@@ -52,7 +52,8 @@
5252
from .state import ConnectionState
5353

5454

55-
_BaseUser = discord.abc.User
55+
_BaseUser = abc.User
56+
MISSING = utils.MISSING
5657

5758

5859
class BaseUser(_BaseUser):
@@ -380,7 +381,11 @@ def _update(self, data: Dict[str, Any]) -> None:
380381
self._flags = data.get('flags', 0)
381382
self.mfa_enabled = data.get('mfa_enabled', False)
382383

383-
async def edit(self, **fields) -> None:
384+
async def edit(
385+
self,
386+
username: str = MISSING,
387+
avatar: bytes = MISSING
388+
) -> None:
384389
"""|coro|
385390
386391
Edits the current profile of the client.
@@ -410,28 +415,24 @@ async def edit(self, **fields) -> None:
410415
Wrong image format passed for ``avatar``.
411416
"""
412417

413-
try:
414-
avatar_bytes = fields['avatar']
415-
except KeyError:
416-
avatar = self.avatar
417-
else:
418-
if avatar_bytes is not None:
419-
avatar = _bytes_to_base64_data(avatar_bytes)
418+
payload = {}
419+
420+
if username is not MISSING:
421+
payload['username'] = username
422+
423+
if avatar is not MISSING:
424+
if avatar is None:
425+
payload['avatar'] = None
420426
else:
421-
avatar = None
422-
423-
args = {
424-
'username': fields.get('username', self.name),
425-
'avatar': avatar
426-
}
427+
payload['avatar'] = _bytes_to_base64_data(avatar)
427428

428429
http = self._state.http
429430

430-
data = await http.edit_profile(**args)
431+
data = await http.edit_profile(payload)
431432
self._update(data)
432433

433434

434-
class User(BaseUser, discord.abc.Messageable):
435+
class User(BaseUser, abc.Messageable):
435436
"""Represents a Discord user.
436437
437438
.. container:: operations

0 commit comments

Comments
 (0)