diff --git a/aiogram/types/message.py b/aiogram/types/message.py index f4b26087..a256200e 100644 --- a/aiogram/types/message.py +++ b/aiogram/types/message.py @@ -17,6 +17,7 @@ if TYPE_CHECKING: EditMessageCaption, EditMessageReplyMarkup, EditMessageText, + ForwardMessage, SendAnimation, SendAudio, SendContact, @@ -1820,6 +1821,22 @@ class Message(TelegramObject): reply_markup=reply_markup, ) + def forward( + self, + chat_id: Union[int, str], + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = None, + ) -> ForwardMessage: + from ..methods import ForwardMessage + + return ForwardMessage( + chat_id=chat_id, + from_chat_id=self.chat.id, + message_id=self.message_id, + disable_notification=disable_notification, + protect_content=protect_content, + ) + def edit_reply_markup( self, reply_markup: Optional[InlineKeyboardMarkup] = None, diff --git a/tests/test_api/test_types/test_message.py b/tests/test_api/test_types/test_message.py index cd078112..0d538b42 100644 --- a/tests/test_api/test_types/test_message.py +++ b/tests/test_api/test_types/test_message.py @@ -9,6 +9,7 @@ from aiogram.methods import ( EditMessageCaption, EditMessageReplyMarkup, EditMessageText, + ForwardMessage, SendAnimation, SendAudio, SendContact, @@ -619,6 +620,15 @@ class TestMessage: assert isinstance(method, EditMessageText) assert method.chat_id == message.chat.id + def test_forward(self): + message = Message( + message_id=42, chat=Chat(id=42, type="private"), date=datetime.datetime.now() + ) + method = message.forward(chat_id=69) + assert isinstance(method, ForwardMessage) + assert method.chat_id == 69 + assert method.from_chat_id == message.chat.id + def test_edit_reply_markup(self): reply_markup = InlineKeyboardMarkup( inline_keyboard=[