Исходный код aiogram.types.user

from ..utils.markdown import link, hlink

try:
    import babel
except ImportError:
    babel = None

from .base import Deserializable


[документация]class User(Deserializable): """ This object represents a Telegram user or bot. https://core.telegram.org/bots/api#user """ def __init__(self, id, is_bot, first_name, last_name, username, language_code): self.id: int = id self.is_bot: bool = is_bot self.first_name: str = first_name self.last_name: str = last_name self.username: str = username self.language_code: str = language_code @classmethod def de_json(cls, raw_data: str or dict) -> 'User': id = raw_data.get('id') is_bot = raw_data.get('is_bot') first_name = raw_data.get('first_name') last_name = raw_data.get('last_name') username = raw_data.get('username') language_code = raw_data.get('language_code') return User(id, is_bot, first_name, last_name, username, language_code) @property def full_name(self): """ You can get full name of user. :return: str """ full_name = self.first_name if self.last_name: full_name += ' ' + self.last_name return full_name @property def mention(self): """ You can get menthion to user (If user have username, otherwise return full name) :return: str """ if self.username: return '@' + self.username return self.full_name @property def locale(self) -> 'babel.core.Locale' or None: """ This property require `Babel <https://pypi.python.org/pypi/Babel>`_ module :return: :class:`babel.core.Locale` :raise: ImportError: when babel is not installed. """ if not babel: raise ImportError('Babel is not installed!') if not self.language_code: return None if not hasattr(self, '_locale'): setattr(self, '_locale', babel.core.Locale.parse(self.language_code, sep='-')) return getattr(self, '_locale') @property def url(self): return f"tg://user?id={self.id}" def get_mention(self, name=None, as_html=False): if name is None: name = self.mention if as_html: return hlink(name, self.url) return link(name, self.url) async def get_user_profile_photos(self, offset=None, limit=None): return await self.bot.get_user_profile_photos(self.id, offset, limit)