Add full_name property to User and Chat objects

Signed-off-by: wulan17 <wulan17@nusantararom.org>
This commit is contained in:
Alisson Lauffer 2023-01-09 01:07:58 -03:00 committed by wulan17
parent dab2ab311b
commit 244ad93229
No known key found for this signature in database
GPG key ID: 318CD6CD3A6AC0A5
2 changed files with 26 additions and 10 deletions

View file

@ -1,20 +1,21 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Pyrofork - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
#
# This file is part of Pyrogram.
# This file is part of Pyrofork.
#
# Pyrogram is free software: you can redistribute it and/or modify
# Pyrofork is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# Pyrofork is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
from datetime import datetime
from typing import Union, List, Optional, AsyncGenerator, BinaryIO
@ -129,6 +130,9 @@ class Chat(Object):
available_reactions (:obj:`~pyrogram.types.ChatReactions`, *optional*):
Available reactions in the chat.
Returned only in :meth:`~pyrogram.Client.get_chat`.
full_name (``str``, *property*):
Full name of the other party in a private chat, for private chats and bots.
"""
def __init__(
@ -195,6 +199,10 @@ class Chat(Object):
self.send_as_chat = send_as_chat
self.available_reactions = available_reactions
@property
def full_name(self) -> str:
return " ".join(filter(None, [self.first_name, self.last_name])) or None
@staticmethod
def _parse_user_chat(client, user: raw.types.User) -> "Chat":
peer_id = user.id

View file

@ -1,20 +1,21 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Pyrofork - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>
#
# This file is part of Pyrogram.
# This file is part of Pyrofork.
#
# Pyrogram is free software: you can redistribute it and/or modify
# Pyrofork is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# Pyrofork is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
import html
from datetime import datetime
@ -140,6 +141,9 @@ class User(Object, Update):
The list of reasons why this bot might be unavailable to some users.
This field is available only in case *is_restricted* is True.
full_name (``str``, *optional*):
User's or bot's full name.
mention (``str``, *property*):
Generate a text mention for this user.
You can use ``user.mention()`` to mention the user using their first name (styled using html), or
@ -203,6 +207,10 @@ class User(Object, Update):
self.photo = photo
self.restrictions = restrictions
@property
def full_name(self) -> str:
return " ".join(filter(None, [self.first_name, self.last_name])) or None
@property
def mention(self):
return Link(