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) 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 # 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 # by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # 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 datetime import datetime
from typing import Union, List, Optional, AsyncGenerator, BinaryIO from typing import Union, List, Optional, AsyncGenerator, BinaryIO
@ -129,6 +130,9 @@ class Chat(Object):
available_reactions (:obj:`~pyrogram.types.ChatReactions`, *optional*): available_reactions (:obj:`~pyrogram.types.ChatReactions`, *optional*):
Available reactions in the chat. Available reactions in the chat.
Returned only in :meth:`~pyrogram.Client.get_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__( def __init__(
@ -195,6 +199,10 @@ class Chat(Object):
self.send_as_chat = send_as_chat self.send_as_chat = send_as_chat
self.available_reactions = available_reactions self.available_reactions = available_reactions
@property
def full_name(self) -> str:
return " ".join(filter(None, [self.first_name, self.last_name])) or None
@staticmethod @staticmethod
def _parse_user_chat(client, user: raw.types.User) -> "Chat": def _parse_user_chat(client, user: raw.types.User) -> "Chat":
peer_id = user.id 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) 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 # 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 # by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # 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 import html
from datetime import datetime 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. The list of reasons why this bot might be unavailable to some users.
This field is available only in case *is_restricted* is True. 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*): mention (``str``, *property*):
Generate a text mention for this user. Generate a text mention for this user.
You can use ``user.mention()`` to mention the user using their first name (styled using html), or 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.photo = photo
self.restrictions = restrictions self.restrictions = restrictions
@property
def full_name(self) -> str:
return " ".join(filter(None, [self.first_name, self.last_name])) or None
@property @property
def mention(self): def mention(self):
return Link( return Link(