Source code for tgram.types._contact
import tgram
from .type_ import Type_
from typing import Optional
[docs]
class Contact(Type_):
"""
This object represents a phone contact.
Telegram Documentation: https://core.telegram.org/bots/api#contact
:param phone_number: Contact's phone number
:type phone_number: :obj:`str`
:param first_name: Contact's first name
:type first_name: :obj:`str`
:param last_name: Optional. Contact's last name
:type last_name: :obj:`str`
:param user_id: Optional. Contact's user identifier in Telegram. This number may have more than 32 significant bits
and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52
significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier.
:type user_id: :obj:`int`
:param vcard: Optional. Additional data about the contact in the form of a vCard
:type vcard: :obj:`str`
:return: Instance of the class
:rtype: :class:`tgram.types.Contact`
"""
def __init__(
self,
phone_number: "str" = None,
first_name: "str" = None,
last_name: "str" = None,
user_id: "int" = None,
vcard: "str" = None,
me: "tgram.TgBot" = None,
json: "dict" = None,
):
super().__init__(me=me, json=json)
self.phone_number = phone_number
self.first_name = first_name
self.last_name = last_name
self.user_id = user_id
self.vcard = vcard
@staticmethod
def _parse(
me: "tgram.TgBot" = None, d: dict = None, force: bool = None
) -> Optional["tgram.types.Contact"]:
return (
Contact(
me=me,
json=d,
phone_number=d.get("phone_number"),
first_name=d.get("first_name"),
last_name=d.get("last_name"),
user_id=d.get("user_id"),
vcard=d.get("vcard"),
)
if d and (force or me and __class__.__name__ not in me._custom_types)
else None
if not d
else Type_._custom_parse(
__class__._parse(me=me, d=d, force=True),
me._custom_types.get(__class__.__name__),
)
)