From a416ef2cb775617819e6501437640a6068c4d309 Mon Sep 17 00:00:00 2001 From: onefedov Date: Tue, 28 Feb 2023 18:51:24 +0500 Subject: [PATCH] correct username parsing --- pyrogram/types/user_and_chats/user.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pyrogram/types/user_and_chats/user.py b/pyrogram/types/user_and_chats/user.py index e981357826..7554ca275f 100644 --- a/pyrogram/types/user_and_chats/user.py +++ b/pyrogram/types/user_and_chats/user.py @@ -216,6 +216,14 @@ def _parse(client, user: "raw.base.User") -> Optional["User"]: if user is None or isinstance(user, raw.types.UserEmpty): return None + user_name = user.username if user.username else None + + if user_name is None: + for username in user.usernames: + if username.active: + user_name = username.username + break + return User( id=user.id, is_self=user.is_self, @@ -232,7 +240,7 @@ def _parse(client, user: "raw.base.User") -> Optional["User"]: first_name=user.first_name, last_name=user.last_name, **User._parse_status(user.status, user.bot), - username=user.username, + username=user_name, language_code=user.lang_code, emoji_status=types.EmojiStatus._parse(client, user.emoji_status), dc_id=getattr(user.photo, "dc_id", None),