From 1cfad73e95c1bcbb3d0fa40b854b59fd424bcb1a Mon Sep 17 00:00:00 2001 From: wulan17 Date: Sat, 15 Apr 2023 00:39:08 +0700 Subject: [PATCH] PyroFork: Add usernames field to User Signed-off-by: wulan17 --- pyrogram/types/user_and_chats/user.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pyrogram/types/user_and_chats/user.py b/pyrogram/types/user_and_chats/user.py index c18f0382..bec4fdd8 100644 --- a/pyrogram/types/user_and_chats/user.py +++ b/pyrogram/types/user_and_chats/user.py @@ -118,6 +118,10 @@ class User(Object, Update): username (``str``, *optional*): User's or bot's username. + usernames (List of :obj:`~pyrogram.types.Username`, *optional*): + List of all chat (fragment) usernames; for private chats, supergroups and channels. + Returned only in :meth:`~pyrogram.Client.get_chat`. + language_code (``str``, *optional*): IETF language tag of the user's language. @@ -172,6 +176,7 @@ class User(Object, Update): last_online_date: datetime = None, next_offline_date: datetime = None, username: str = None, + usernames: List["types.Username"] = None, language_code: str = None, emoji_status: Optional["types.EmojiStatus"] = None, dc_id: int = None, @@ -199,6 +204,7 @@ class User(Object, Update): self.last_online_date = last_online_date self.next_offline_date = next_offline_date self.username = username + self.usernames = usernames self.language_code = language_code self.emoji_status = emoji_status self.dc_id = dc_id @@ -222,6 +228,12 @@ class User(Object, Update): def _parse(client, user: "raw.base.User") -> Optional["User"]: if user is None or isinstance(user, raw.types.UserEmpty): return None + active_usernames = getattr(user, "usernames", []) + usernames = None + if len(active_usernames) >= 1: + usernames = [] + for username in active_usernames: + usernames.append(types.Username._parse(username)) return User( id=user.id, @@ -240,6 +252,7 @@ class User(Object, Update): last_name=user.last_name, **User._parse_status(user.status, user.bot), username=user.username, + usernames=usernames, language_code=user.lang_code, emoji_status=types.EmojiStatus._parse(client, user.emoji_status), dc_id=getattr(user.photo, "dc_id", None),