Spaces:
Configuration error
Configuration error
| #!/usr/bin/env python | |
| # pylint: disable=redefined-builtin | |
| # | |
| # A library that provides a Python interface to the Telegram Bot API | |
| # Copyright (C) 2015-2024 | |
| # Leandro Toledo de Souza <[email protected]> | |
| # | |
| # This program is free software: you can redistribute it and/or modify | |
| # it under the terms of the GNU Lesser Public License as published by | |
| # the Free Software Foundation, either version 3 of the License, or | |
| # (at your option) any later version. | |
| # | |
| # This program 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 Public License for more details. | |
| # | |
| # You should have received a copy of the GNU Lesser Public License | |
| # along with this program. If not, see [http://www.gnu.org/licenses/]. | |
| """This module contains an object that represents a Telegram ChatFullInfo.""" | |
| from datetime import datetime | |
| from typing import TYPE_CHECKING, Optional, Sequence, Tuple | |
| from telegram._birthdate import Birthdate | |
| from telegram._chat import Chat, _ChatBase | |
| from telegram._chatlocation import ChatLocation | |
| from telegram._chatpermissions import ChatPermissions | |
| from telegram._files.chatphoto import ChatPhoto | |
| from telegram._reaction import ReactionType | |
| from telegram._utils.argumentparsing import parse_sequence_arg | |
| from telegram._utils.datetime import extract_tzinfo_from_defaults, from_timestamp | |
| from telegram._utils.types import JSONDict | |
| if TYPE_CHECKING: | |
| from telegram import Bot, BusinessIntro, BusinessLocation, BusinessOpeningHours, Message | |
| class ChatFullInfo(_ChatBase): | |
| """ | |
| This object contains full information about a chat. | |
| Objects of this class are comparable in terms of equality. Two objects of this class are | |
| considered equal, if their :attr:`~telegram.Chat.id` is equal. | |
| .. versionadded:: 21.2 | |
| .. versionchanged:: 21.3 | |
| Explicit support for all shortcut methods known from :class:`telegram.Chat` on this | |
| object. Previously those were only available because this class inherited from | |
| :class:`telegram.Chat`. | |
| Args: | |
| id (:obj:`int`): Unique identifier for this chat. | |
| type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`, | |
| :attr:`SUPERGROUP` or :attr:`CHANNEL`. | |
| accent_color_id (:obj:`int`, optional): Identifier of the | |
| :class:`accent color <telegram.constants.AccentColor>` for the chat name and | |
| backgrounds of the chat photo, reply header, and link preview. See `accent colors`_ | |
| for more details. | |
| .. versionadded:: 20.8 | |
| max_reaction_count (:obj:`int`): The maximum number of reactions that can be set on a | |
| message in the chat. | |
| .. versionadded:: 21.2 | |
| title (:obj:`str`, optional): Title, for supergroups, channels and group chats. | |
| username (:obj:`str`, optional): Username, for private chats, supergroups and channels if | |
| available. | |
| first_name (:obj:`str`, optional): First name of the other party in a private chat. | |
| last_name (:obj:`str`, optional): Last name of the other party in a private chat. | |
| is_forum (:obj:`bool`, optional): :obj:`True`, if the supergroup chat is a forum | |
| (has topics_ enabled). | |
| .. versionadded:: 20.0 | |
| photo (:class:`telegram.ChatPhoto`, optional): Chat photo. | |
| active_usernames (Sequence[:obj:`str`], optional): If set, the list of all `active chat | |
| usernames <https://telegram.org/blog/topics-in-groups-collectible-usernames\ | |
| #collectible-usernames>`_; for private chats, supergroups and channels. | |
| .. versionadded:: 20.0 | |
| birthdate (:class:`telegram.Birthdate`, optional): For private chats, | |
| the date of birth of the user. | |
| .. versionadded:: 21.1 | |
| business_intro (:class:`telegram.BusinessIntro`, optional): For private chats with | |
| business accounts, the intro of the business. | |
| .. versionadded:: 21.1 | |
| business_location (:class:`telegram.BusinessLocation`, optional): For private chats with | |
| business accounts, the location of the business. | |
| .. versionadded:: 21.1 | |
| business_opening_hours (:class:`telegram.BusinessOpeningHours`, optional): For private | |
| chats with business accounts, the opening hours of the business. | |
| .. versionadded:: 21.1 | |
| personal_chat (:class:`telegram.Chat`, optional): For private chats, the personal channel | |
| of the user. | |
| .. versionadded:: 21.1 | |
| available_reactions (Sequence[:class:`telegram.ReactionType`], optional): List of available | |
| reactions allowed in the chat. If omitted, then all of | |
| :const:`telegram.constants.ReactionEmoji` are allowed. | |
| .. versionadded:: 20.8 | |
| background_custom_emoji_id (:obj:`str`, optional): Custom emoji identifier of emoji chosen | |
| by the chat for the reply header and link preview background. | |
| .. versionadded:: 20.8 | |
| profile_accent_color_id (:obj:`int`, optional): Identifier of the | |
| :class:`accent color <telegram.constants.ProfileAccentColor>` for the chat's profile | |
| background. See profile `accent colors`_ for more details. | |
| .. versionadded:: 20.8 | |
| profile_background_custom_emoji_id (:obj:`str`, optional): Custom emoji identifier of | |
| the emoji chosen by the chat for its profile background. | |
| .. versionadded:: 20.8 | |
| emoji_status_custom_emoji_id (:obj:`str`, optional): Custom emoji identifier of emoji | |
| status of the chat or the other party in a private chat. | |
| .. versionadded:: 20.0 | |
| emoji_status_expiration_date (:class:`datetime.datetime`, optional): Expiration date of | |
| emoji status of the chat or the other party in a private chat, as a datetime object, | |
| if any. | |
| |datetime_localization| | |
| .. versionadded:: 20.5 | |
| bio (:obj:`str`, optional): Bio of the other party in a private chat. | |
| has_private_forwards (:obj:`bool`, optional): :obj:`True`, if privacy settings of the other | |
| party in the private chat allows to use ``tg://user?id=<user_id>`` links only in chats | |
| with the user. | |
| .. versionadded:: 13.9 | |
| has_restricted_voice_and_video_messages (:obj:`bool`, optional): :obj:`True`, if the | |
| privacy settings of the other party restrict sending voice and video note messages | |
| in the private chat. | |
| .. versionadded:: 20.0 | |
| join_to_send_messages (:obj:`bool`, optional): :obj:`True`, if users need to join the | |
| supergroup before they can send messages. | |
| .. versionadded:: 20.0 | |
| join_by_request (:obj:`bool`, optional): :obj:`True`, if all users directly joining the | |
| supergroup without using an invite link need to be approved by supergroup | |
| administrators. | |
| .. versionadded:: 20.0 | |
| description (:obj:`str`, optional): Description, for groups, supergroups and channel chats. | |
| invite_link (:obj:`str`, optional): Primary invite link, for groups, supergroups and | |
| channel. | |
| pinned_message (:class:`telegram.Message`, optional): The most recent pinned message | |
| (by sending date). | |
| permissions (:class:`telegram.ChatPermissions`): Optional. Default chat member permissions, | |
| for groups and supergroups. | |
| slow_mode_delay (:obj:`int`, optional): For supergroups, the minimum allowed delay between | |
| consecutive messages sent by each unprivileged user. | |
| unrestrict_boost_count (:obj:`int`, optional): For supergroups, the minimum number of | |
| boosts that a non-administrator user needs to add in order to ignore slow mode and chat | |
| permissions. | |
| .. versionadded:: 21.0 | |
| message_auto_delete_time (:obj:`int`, optional): The time after which all messages sent to | |
| the chat will be automatically deleted; in seconds. | |
| .. versionadded:: 13.4 | |
| has_aggressive_anti_spam_enabled (:obj:`bool`, optional): :obj:`True`, if aggressive | |
| anti-spam checks are enabled in the supergroup. The field is only available to chat | |
| administrators. | |
| .. versionadded:: 20.0 | |
| has_hidden_members (:obj:`bool`, optional): :obj:`True`, if non-administrators can only | |
| get the list of bots and administrators in the chat. | |
| .. versionadded:: 20.0 | |
| has_protected_content (:obj:`bool`, optional): :obj:`True`, if messages from the chat can't | |
| be forwarded to other chats. | |
| .. versionadded:: 13.9 | |
| has_visible_history (:obj:`bool`, optional): :obj:`True`, if new chat members will have | |
| access to old messages; available only to chat administrators. | |
| .. versionadded:: 20.8 | |
| sticker_set_name (:obj:`str`, optional): For supergroups, name of group sticker set. | |
| can_set_sticker_set (:obj:`bool`, optional): :obj:`True`, if the bot can change group the | |
| sticker set. | |
| custom_emoji_sticker_set_name (:obj:`str`, optional): For supergroups, the name of the | |
| group's custom emoji sticker set. Custom emoji from this set can be used by all users | |
| and bots in the group. | |
| .. versionadded:: 21.0 | |
| linked_chat_id (:obj:`int`, optional): Unique identifier for the linked chat, i.e. the | |
| discussion group identifier for a channel and vice versa; for supergroups and channel | |
| chats. | |
| location (:class:`telegram.ChatLocation`, optional): For supergroups, the location to which | |
| the supergroup is connected. | |
| can_send_paid_media (:obj:`bool`, optional): :obj:`True`, if paid media messages can be | |
| sent or forwarded to the channel chat. The field is available only for channel chats. | |
| .. versionadded:: 21.4 | |
| Attributes: | |
| id (:obj:`int`): Unique identifier for this chat. | |
| type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`, | |
| :attr:`SUPERGROUP` or :attr:`CHANNEL`. | |
| accent_color_id (:obj:`int`): Optional. Identifier of the | |
| :class:`accent color <telegram.constants.AccentColor>` for the chat name and | |
| backgrounds of the chat photo, reply header, and link preview. See `accent colors`_ | |
| for more details. | |
| .. versionadded:: 20.8 | |
| max_reaction_count (:obj:`int`): The maximum number of reactions that can be set on a | |
| message in the chat. | |
| .. versionadded:: 21.2 | |
| title (:obj:`str`, optional): Title, for supergroups, channels and group chats. | |
| username (:obj:`str`, optional): Username, for private chats, supergroups and channels if | |
| available. | |
| first_name (:obj:`str`, optional): First name of the other party in a private chat. | |
| last_name (:obj:`str`, optional): Last name of the other party in a private chat. | |
| is_forum (:obj:`bool`, optional): :obj:`True`, if the supergroup chat is a forum | |
| (has topics_ enabled). | |
| .. versionadded:: 20.0 | |
| photo (:class:`telegram.ChatPhoto`): Optional. Chat photo. | |
| active_usernames (Tuple[:obj:`str`]): Optional. If set, the list of all `active chat | |
| usernames <https://telegram.org/blog/topics-in-groups-collectible-usernames\ | |
| #collectible-usernames>`_; for private chats, supergroups and channels. | |
| This list is empty if the chat has no active usernames or this chat instance was not | |
| obtained via :meth:`~telegram.Bot.get_chat`. | |
| .. versionadded:: 20.0 | |
| birthdate (:class:`telegram.Birthdate`): Optional. For private chats, | |
| the date of birth of the user. | |
| .. versionadded:: 21.1 | |
| business_intro (:class:`telegram.BusinessIntro`): Optional. For private chats with | |
| business accounts, the intro of the business. | |
| .. versionadded:: 21.1 | |
| business_location (:class:`telegram.BusinessLocation`): Optional. For private chats with | |
| business accounts, the location of the business. | |
| .. versionadded:: 21.1 | |
| business_opening_hours (:class:`telegram.BusinessOpeningHours`): Optional. For private | |
| chats with business accounts, the opening hours of the business. | |
| .. versionadded:: 21.1 | |
| personal_chat (:class:`telegram.Chat`): Optional. For private chats, the personal channel | |
| of the user. | |
| .. versionadded:: 21.1 | |
| available_reactions (Tuple[:class:`telegram.ReactionType`]): Optional. List of available | |
| reactions allowed in the chat. If omitted, then all of | |
| :const:`telegram.constants.ReactionEmoji` are allowed. | |
| .. versionadded:: 20.8 | |
| background_custom_emoji_id (:obj:`str`): Optional. Custom emoji identifier of emoji chosen | |
| by the chat for the reply header and link preview background. | |
| .. versionadded:: 20.8 | |
| profile_accent_color_id (:obj:`int`): Optional. Identifier of the | |
| :class:`accent color <telegram.constants.ProfileAccentColor>` for the chat's profile | |
| background. See profile `accent colors`_ for more details. | |
| .. versionadded:: 20.8 | |
| profile_background_custom_emoji_id (:obj:`str`): Optional. Custom emoji identifier of | |
| the emoji chosen by the chat for its profile background. | |
| .. versionadded:: 20.8 | |
| emoji_status_custom_emoji_id (:obj:`str`): Optional. Custom emoji identifier of emoji | |
| status of the chat or the other party in a private chat. | |
| .. versionadded:: 20.0 | |
| emoji_status_expiration_date (:class:`datetime.datetime`): Optional. Expiration date of | |
| emoji status of the chat or the other party in a private chat, as a datetime object, | |
| if any. | |
| |datetime_localization| | |
| .. versionadded:: 20.5 | |
| bio (:obj:`str`): Optional. Bio of the other party in a private chat. | |
| has_private_forwards (:obj:`bool`): Optional. :obj:`True`, if privacy settings of the other | |
| party in the private chat allows to use ``tg://user?id=<user_id>`` links only in chats | |
| with the user. | |
| .. versionadded:: 13.9 | |
| has_restricted_voice_and_video_messages (:obj:`bool`): Optional. :obj:`True`, if the | |
| privacy settings of the other party restrict sending voice and video note messages | |
| in the private chat. | |
| .. versionadded:: 20.0 | |
| join_to_send_messages (:obj:`bool`): Optional. :obj:`True`, if users need to join | |
| the supergroup before they can send messages. | |
| .. versionadded:: 20.0 | |
| join_by_request (:obj:`bool`): Optional. :obj:`True`, if all users directly joining the | |
| supergroup without using an invite link need to be approved by supergroup | |
| administrators. | |
| .. versionadded:: 20.0 | |
| description (:obj:`str`): Optional. Description, for groups, supergroups and channel chats. | |
| invite_link (:obj:`str`): Optional. Primary invite link, for groups, supergroups and | |
| channel. | |
| pinned_message (:class:`telegram.Message`): Optional. The most recent pinned message | |
| (by sending date). | |
| permissions (:class:`telegram.ChatPermissions`): Optional. Default chat member permissions, | |
| for groups and supergroups. | |
| slow_mode_delay (:obj:`int`): Optional. For supergroups, the minimum allowed delay between | |
| consecutive messages sent by each unprivileged user. | |
| unrestrict_boost_count (:obj:`int`): Optional. For supergroups, the minimum number of | |
| boosts that a non-administrator user needs to add in order to ignore slow mode and chat | |
| permissions. | |
| .. versionadded:: 21.0 | |
| message_auto_delete_time (:obj:`int`): Optional. The time after which all messages sent to | |
| the chat will be automatically deleted; in seconds. | |
| .. versionadded:: 13.4 | |
| has_aggressive_anti_spam_enabled (:obj:`bool`): Optional. :obj:`True`, if aggressive | |
| anti-spam checks are enabled in the supergroup. The field is only available to chat | |
| administrators. | |
| .. versionadded:: 20.0 | |
| has_hidden_members (:obj:`bool`): Optional. :obj:`True`, if non-administrators can only | |
| get the list of bots and administrators in the chat. | |
| .. versionadded:: 20.0 | |
| has_protected_content (:obj:`bool`): Optional. :obj:`True`, if messages from the chat can't | |
| be forwarded to other chats. | |
| .. versionadded:: 13.9 | |
| has_visible_history (:obj:`bool`): Optional. :obj:`True`, if new chat members will have | |
| access to old messages; available only to chat administrators. | |
| .. versionadded:: 20.8 | |
| sticker_set_name (:obj:`str`): Optional. For supergroups, name of Group sticker set. | |
| can_set_sticker_set (:obj:`bool`): Optional. :obj:`True`, if the bot can change group the | |
| sticker set. | |
| custom_emoji_sticker_set_name (:obj:`str`): Optional. For supergroups, the name of the | |
| group's custom emoji sticker set. Custom emoji from this set can be used by all users | |
| and bots in the group. | |
| .. versionadded:: 21.0 | |
| linked_chat_id (:obj:`int`): Optional. Unique identifier for the linked chat, i.e. the | |
| discussion group identifier for a channel and vice versa; for supergroups and channel | |
| chats. | |
| location (:class:`telegram.ChatLocation`): Optional. For supergroups, the location to which | |
| the supergroup is connected. | |
| can_send_paid_media (:obj:`bool`): Optional. :obj:`True`, if paid media messages can be | |
| sent or forwarded to the channel chat. The field is available only for channel chats. | |
| .. versionadded:: 21.4 | |
| .. _accent colors: https://core.telegram.org/bots/api#accent-colors | |
| .. _topics: https://telegram.org/blog/topics-in-groups-collectible-usernames#topics-in-groups | |
| """ | |
| __slots__ = ( | |
| "accent_color_id", | |
| "active_usernames", | |
| "available_reactions", | |
| "background_custom_emoji_id", | |
| "bio", | |
| "birthdate", | |
| "business_intro", | |
| "business_location", | |
| "business_opening_hours", | |
| "can_send_paid_media", | |
| "can_set_sticker_set", | |
| "custom_emoji_sticker_set_name", | |
| "description", | |
| "emoji_status_custom_emoji_id", | |
| "emoji_status_expiration_date", | |
| "has_aggressive_anti_spam_enabled", | |
| "has_hidden_members", | |
| "has_private_forwards", | |
| "has_protected_content", | |
| "has_restricted_voice_and_video_messages", | |
| "has_visible_history", | |
| "invite_link", | |
| "join_by_request", | |
| "join_to_send_messages", | |
| "linked_chat_id", | |
| "location", | |
| "max_reaction_count", | |
| "message_auto_delete_time", | |
| "permissions", | |
| "personal_chat", | |
| "photo", | |
| "pinned_message", | |
| "profile_accent_color_id", | |
| "profile_background_custom_emoji_id", | |
| "slow_mode_delay", | |
| "sticker_set_name", | |
| "unrestrict_boost_count", | |
| ) | |
| def __init__( | |
| self, | |
| id: int, | |
| type: str, | |
| accent_color_id: int, | |
| max_reaction_count: int, | |
| title: Optional[str] = None, | |
| username: Optional[str] = None, | |
| first_name: Optional[str] = None, | |
| last_name: Optional[str] = None, | |
| is_forum: Optional[bool] = None, | |
| photo: Optional[ChatPhoto] = None, | |
| active_usernames: Optional[Sequence[str]] = None, | |
| birthdate: Optional[Birthdate] = None, | |
| business_intro: Optional["BusinessIntro"] = None, | |
| business_location: Optional["BusinessLocation"] = None, | |
| business_opening_hours: Optional["BusinessOpeningHours"] = None, | |
| personal_chat: Optional["Chat"] = None, | |
| available_reactions: Optional[Sequence[ReactionType]] = None, | |
| background_custom_emoji_id: Optional[str] = None, | |
| profile_accent_color_id: Optional[int] = None, | |
| profile_background_custom_emoji_id: Optional[str] = None, | |
| emoji_status_custom_emoji_id: Optional[str] = None, | |
| emoji_status_expiration_date: Optional[datetime] = None, | |
| bio: Optional[str] = None, | |
| has_private_forwards: Optional[bool] = None, | |
| has_restricted_voice_and_video_messages: Optional[bool] = None, | |
| join_to_send_messages: Optional[bool] = None, | |
| join_by_request: Optional[bool] = None, | |
| description: Optional[str] = None, | |
| invite_link: Optional[str] = None, | |
| pinned_message: Optional["Message"] = None, | |
| permissions: Optional[ChatPermissions] = None, | |
| slow_mode_delay: Optional[int] = None, | |
| unrestrict_boost_count: Optional[int] = None, | |
| message_auto_delete_time: Optional[int] = None, | |
| has_aggressive_anti_spam_enabled: Optional[bool] = None, | |
| has_hidden_members: Optional[bool] = None, | |
| has_protected_content: Optional[bool] = None, | |
| has_visible_history: Optional[bool] = None, | |
| sticker_set_name: Optional[str] = None, | |
| can_set_sticker_set: Optional[bool] = None, | |
| custom_emoji_sticker_set_name: Optional[str] = None, | |
| linked_chat_id: Optional[int] = None, | |
| location: Optional[ChatLocation] = None, | |
| can_send_paid_media: Optional[bool] = None, | |
| *, | |
| api_kwargs: Optional[JSONDict] = None, | |
| ): | |
| super().__init__( | |
| id=id, | |
| type=type, | |
| title=title, | |
| username=username, | |
| first_name=first_name, | |
| last_name=last_name, | |
| is_forum=is_forum, | |
| api_kwargs=api_kwargs, | |
| ) | |
| # Required and unique to this class- | |
| with self._unfrozen(): | |
| self.max_reaction_count: int = max_reaction_count | |
| self.photo: Optional[ChatPhoto] = photo | |
| self.bio: Optional[str] = bio | |
| self.has_private_forwards: Optional[bool] = has_private_forwards | |
| self.description: Optional[str] = description | |
| self.invite_link: Optional[str] = invite_link | |
| self.pinned_message: Optional[Message] = pinned_message | |
| self.permissions: Optional[ChatPermissions] = permissions | |
| self.slow_mode_delay: Optional[int] = slow_mode_delay | |
| self.message_auto_delete_time: Optional[int] = ( | |
| int(message_auto_delete_time) if message_auto_delete_time is not None else None | |
| ) | |
| self.has_protected_content: Optional[bool] = has_protected_content | |
| self.has_visible_history: Optional[bool] = has_visible_history | |
| self.sticker_set_name: Optional[str] = sticker_set_name | |
| self.can_set_sticker_set: Optional[bool] = can_set_sticker_set | |
| self.linked_chat_id: Optional[int] = linked_chat_id | |
| self.location: Optional[ChatLocation] = location | |
| self.join_to_send_messages: Optional[bool] = join_to_send_messages | |
| self.join_by_request: Optional[bool] = join_by_request | |
| self.has_restricted_voice_and_video_messages: Optional[bool] = ( | |
| has_restricted_voice_and_video_messages | |
| ) | |
| self.active_usernames: Tuple[str, ...] = parse_sequence_arg(active_usernames) | |
| self.emoji_status_custom_emoji_id: Optional[str] = emoji_status_custom_emoji_id | |
| self.emoji_status_expiration_date: Optional[datetime] = emoji_status_expiration_date | |
| self.has_aggressive_anti_spam_enabled: Optional[bool] = ( | |
| has_aggressive_anti_spam_enabled | |
| ) | |
| self.has_hidden_members: Optional[bool] = has_hidden_members | |
| self.available_reactions: Optional[Tuple[ReactionType, ...]] = parse_sequence_arg( | |
| available_reactions | |
| ) | |
| self.accent_color_id: Optional[int] = accent_color_id | |
| self.background_custom_emoji_id: Optional[str] = background_custom_emoji_id | |
| self.profile_accent_color_id: Optional[int] = profile_accent_color_id | |
| self.profile_background_custom_emoji_id: Optional[str] = ( | |
| profile_background_custom_emoji_id | |
| ) | |
| self.unrestrict_boost_count: Optional[int] = unrestrict_boost_count | |
| self.custom_emoji_sticker_set_name: Optional[str] = custom_emoji_sticker_set_name | |
| self.birthdate: Optional[Birthdate] = birthdate | |
| self.personal_chat: Optional[Chat] = personal_chat | |
| self.business_intro: Optional[BusinessIntro] = business_intro | |
| self.business_location: Optional[BusinessLocation] = business_location | |
| self.business_opening_hours: Optional[BusinessOpeningHours] = business_opening_hours | |
| self.can_send_paid_media: Optional[bool] = can_send_paid_media | |
| def de_json( | |
| cls, data: Optional[JSONDict], bot: Optional["Bot"] = None | |
| ) -> Optional["ChatFullInfo"]: | |
| """See :meth:`telegram.TelegramObject.de_json`.""" | |
| data = cls._parse_data(data) | |
| if not data: | |
| return None | |
| # Get the local timezone from the bot if it has defaults | |
| loc_tzinfo = extract_tzinfo_from_defaults(bot) | |
| data["emoji_status_expiration_date"] = from_timestamp( | |
| data.get("emoji_status_expiration_date"), tzinfo=loc_tzinfo | |
| ) | |
| data["photo"] = ChatPhoto.de_json(data.get("photo"), bot) | |
| from telegram import ( # pylint: disable=import-outside-toplevel | |
| BusinessIntro, | |
| BusinessLocation, | |
| BusinessOpeningHours, | |
| Message, | |
| ) | |
| data["pinned_message"] = Message.de_json(data.get("pinned_message"), bot) | |
| data["permissions"] = ChatPermissions.de_json(data.get("permissions"), bot) | |
| data["location"] = ChatLocation.de_json(data.get("location"), bot) | |
| data["available_reactions"] = ReactionType.de_list(data.get("available_reactions"), bot) | |
| data["birthdate"] = Birthdate.de_json(data.get("birthdate"), bot) | |
| data["personal_chat"] = Chat.de_json(data.get("personal_chat"), bot) | |
| data["business_intro"] = BusinessIntro.de_json(data.get("business_intro"), bot) | |
| data["business_location"] = BusinessLocation.de_json(data.get("business_location"), bot) | |
| data["business_opening_hours"] = BusinessOpeningHours.de_json( | |
| data.get("business_opening_hours"), bot | |
| ) | |
| return super().de_json(data=data, bot=bot) | |