diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index b5c7655c..23157631 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -516,6 +516,7 @@ def pyrogram_api(): MessageOriginChannel MessageOriginChat MessageOriginHiddenUser + MessageOriginImport MessageOriginUser MessageOrigin Photo diff --git a/pyrogram/enums/message_origin_type.py b/pyrogram/enums/message_origin_type.py index 0cd40e1b..e4b044e3 100644 --- a/pyrogram/enums/message_origin_type.py +++ b/pyrogram/enums/message_origin_type.py @@ -34,5 +34,9 @@ class MessageOriginType(AutoName): HIDDEN_USER = auto() "The message was originally sent by a user, which is hidden by their privacy settings" + IMPORT = auto() + "The message was imported from a foreign chat service" + + USER = auto() "The message was originally sent by a known user" diff --git a/pyrogram/types/messages_and_media/__init__.py b/pyrogram/types/messages_and_media/__init__.py index 8176d5bf..6bfb0018 100644 --- a/pyrogram/types/messages_and_media/__init__.py +++ b/pyrogram/types/messages_and_media/__init__.py @@ -41,6 +41,7 @@ from .message_origin import MessageOrigin from .message_origin_channel import MessageOriginChannel from .message_origin_chat import MessageOriginChat from .message_origin_hidden_user import MessageOriginHiddenUser +from .message_origin_import import MessageOriginImport from .message_origin_user import MessageOriginUser from .photo import Photo from .poll import Poll @@ -102,6 +103,7 @@ __all__ = [ "MessageOriginChannel", "MessageOriginChat", "MessageOriginHiddenUser", + "MessageOriginImport", "MessageOriginUser", "Photo", "Thumbnail", diff --git a/pyrogram/types/messages_and_media/message_origin.py b/pyrogram/types/messages_and_media/message_origin.py index 19d89afd..3770fb99 100644 --- a/pyrogram/types/messages_and_media/message_origin.py +++ b/pyrogram/types/messages_and_media/message_origin.py @@ -33,6 +33,7 @@ class MessageOrigin(Object): - :obj:`~pyrogram.types.MessageOriginChannel` - :obj:`~pyrogram.types.MessageOriginChat` - :obj:`~pyrogram.types.MessageOriginHiddenUser` + - :obj:`~pyrogram.types.MessageOriginImport` - :obj:`~pyrogram.types.MessageOriginUser` """ @@ -87,3 +88,8 @@ class MessageOrigin(Object): date=forward_date, sender_user_name=fwd_from.from_name ) + elif fwd_from.imported: + return types.MessageOriginImport( + date=forward_date, + sender_user_name=fwd_from.post_author + ) diff --git a/pyrogram/types/messages_and_media/message_origin_import.py b/pyrogram/types/messages_and_media/message_origin_import.py new file mode 100644 index 00000000..c4129e5e --- /dev/null +++ b/pyrogram/types/messages_and_media/message_origin_import.py @@ -0,0 +1,51 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-present +# Copyright (C) 2022-present Mayuri-Chan +# +# This file is part of Pyrogram. +# +# Pyrogram 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, +# 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 . + +from datetime import datetime + +from pyrogram import enums + +from .message_origin import MessageOrigin + + +class MessageOriginImport(MessageOrigin): + """Contains information about a message imported from a foreign chat service. + + Parameters: + type (:obj:`~pyrogram.enums.MessageOriginType`): + Type of the message origin. + + date (:py:obj:`~datetime.datetime`): + Date the message was sent originally. + + sender_user_name (``str``): + Name of the original sender. + """ + def __init__( + self, + *, + date: datetime = None, + sender_user_name: str = None + ): + super().__init__( + type=enums.MessageOriginType.IMPORT, + date=date + ) + + self.sender_user_name = sender_user_name