diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py
index c5e7418c..24bc6317 100644
--- a/compiler/docs/compiler.py
+++ b/compiler/docs/compiler.py
@@ -522,6 +522,7 @@ def pyrogram_api():
input_message_content="""
InputMessageContent
InputMessageContent
+ InputReplyToMessage
InputTextMessageContent
""",
authorization="""
diff --git a/pyrogram/methods/bots/send_game.py b/pyrogram/methods/bots/send_game.py
index a35c6df0..ec090d9f 100644
--- a/pyrogram/methods/bots/send_game.py
+++ b/pyrogram/methods/bots/send_game.py
@@ -80,17 +80,7 @@ class SendGame:
"""
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
r = await self.invoke(
raw.functions.messages.SendMedia(
diff --git a/pyrogram/methods/bots/send_inline_bot_result.py b/pyrogram/methods/bots/send_inline_bot_result.py
index 5bc70482..03034518 100644
--- a/pyrogram/methods/bots/send_inline_bot_result.py
+++ b/pyrogram/methods/bots/send_inline_bot_result.py
@@ -71,17 +71,7 @@ class SendInlineBotResult:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
return await self.invoke(
raw.functions.messages.SendInlineBotResult(
diff --git a/pyrogram/methods/messages/copy_media_group.py b/pyrogram/methods/messages/copy_media_group.py
index f01a14f8..d796cc57 100644
--- a/pyrogram/methods/messages/copy_media_group.py
+++ b/pyrogram/methods/messages/copy_media_group.py
@@ -96,17 +96,7 @@ class CopyMediaGroup:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
for i, message in enumerate(media_group):
if message.photo:
diff --git a/pyrogram/methods/messages/send_animation.py b/pyrogram/methods/messages/send_animation.py
index b337ec60..002d76f4 100644
--- a/pyrogram/methods/messages/send_animation.py
+++ b/pyrogram/methods/messages/send_animation.py
@@ -182,17 +182,7 @@ class SendAnimation:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(animation, str):
diff --git a/pyrogram/methods/messages/send_audio.py b/pyrogram/methods/messages/send_audio.py
index 212f4331..d1df3271 100644
--- a/pyrogram/methods/messages/send_audio.py
+++ b/pyrogram/methods/messages/send_audio.py
@@ -176,17 +176,7 @@ class SendAudio:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(audio, str):
diff --git a/pyrogram/methods/messages/send_cached_media.py b/pyrogram/methods/messages/send_cached_media.py
index 5213a874..f06755b3 100644
--- a/pyrogram/methods/messages/send_cached_media.py
+++ b/pyrogram/methods/messages/send_cached_media.py
@@ -105,17 +105,7 @@ class SendCachedMedia:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
r = await self.invoke(
raw.functions.messages.SendMedia(
diff --git a/pyrogram/methods/messages/send_contact.py b/pyrogram/methods/messages/send_contact.py
index 9be6ca52..2f39000b 100644
--- a/pyrogram/methods/messages/send_contact.py
+++ b/pyrogram/methods/messages/send_contact.py
@@ -98,17 +98,7 @@ class SendContact:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
r = await self.invoke(
raw.functions.messages.SendMedia(
diff --git a/pyrogram/methods/messages/send_dice.py b/pyrogram/methods/messages/send_dice.py
index 92c3d2c8..2b752fc4 100644
--- a/pyrogram/methods/messages/send_dice.py
+++ b/pyrogram/methods/messages/send_dice.py
@@ -97,17 +97,7 @@ class SendDice:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
r = await self.invoke(
raw.functions.messages.SendMedia(
diff --git a/pyrogram/methods/messages/send_document.py b/pyrogram/methods/messages/send_document.py
index adfd9eb8..44cbee99 100644
--- a/pyrogram/methods/messages/send_document.py
+++ b/pyrogram/methods/messages/send_document.py
@@ -163,17 +163,7 @@ class SendDocument:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(document, str):
diff --git a/pyrogram/methods/messages/send_location.py b/pyrogram/methods/messages/send_location.py
index 3ae8c88f..4d71ba2e 100644
--- a/pyrogram/methods/messages/send_location.py
+++ b/pyrogram/methods/messages/send_location.py
@@ -90,17 +90,7 @@ class SendLocation:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
r = await self.invoke(
raw.functions.messages.SendMedia(
diff --git a/pyrogram/methods/messages/send_media_group.py b/pyrogram/methods/messages/send_media_group.py
index 6a06cc36..9783cc77 100644
--- a/pyrogram/methods/messages/send_media_group.py
+++ b/pyrogram/methods/messages/send_media_group.py
@@ -101,17 +101,7 @@ class SendMediaGroup:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
for i in media:
if isinstance(i, types.InputMediaPhoto):
diff --git a/pyrogram/methods/messages/send_message.py b/pyrogram/methods/messages/send_message.py
index 14a4d429..0fd7cdbe 100644
--- a/pyrogram/methods/messages/send_message.py
+++ b/pyrogram/methods/messages/send_message.py
@@ -130,17 +130,7 @@ class SendMessage:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
r = await self.invoke(
raw.functions.messages.SendMessage(
diff --git a/pyrogram/methods/messages/send_photo.py b/pyrogram/methods/messages/send_photo.py
index 50973f6d..85dd91d8 100644
--- a/pyrogram/methods/messages/send_photo.py
+++ b/pyrogram/methods/messages/send_photo.py
@@ -154,17 +154,7 @@ class SendPhoto:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(photo, str):
diff --git a/pyrogram/methods/messages/send_poll.py b/pyrogram/methods/messages/send_poll.py
index f384584a..55f2e14c 100644
--- a/pyrogram/methods/messages/send_poll.py
+++ b/pyrogram/methods/messages/send_poll.py
@@ -140,17 +140,7 @@ class SendPoll:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
solution, solution_entities = (await utils.parse_text_entities(
self, explanation, explanation_parse_mode, explanation_entities
diff --git a/pyrogram/methods/messages/send_sticker.py b/pyrogram/methods/messages/send_sticker.py
index 44628e65..283560ba 100644
--- a/pyrogram/methods/messages/send_sticker.py
+++ b/pyrogram/methods/messages/send_sticker.py
@@ -127,17 +127,7 @@ class SendSticker:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(sticker, str):
diff --git a/pyrogram/methods/messages/send_venue.py b/pyrogram/methods/messages/send_venue.py
index 2428749b..19bdb753 100644
--- a/pyrogram/methods/messages/send_venue.py
+++ b/pyrogram/methods/messages/send_venue.py
@@ -109,17 +109,7 @@ class SendVenue:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
r = await self.invoke(
raw.functions.messages.SendMedia(
diff --git a/pyrogram/methods/messages/send_video.py b/pyrogram/methods/messages/send_video.py
index 22eabbc0..dac03ba7 100644
--- a/pyrogram/methods/messages/send_video.py
+++ b/pyrogram/methods/messages/send_video.py
@@ -187,17 +187,7 @@ class SendVideo:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(video, str):
diff --git a/pyrogram/methods/messages/send_video_note.py b/pyrogram/methods/messages/send_video_note.py
index e5f7bf0e..9d0aa3a5 100644
--- a/pyrogram/methods/messages/send_video_note.py
+++ b/pyrogram/methods/messages/send_video_note.py
@@ -141,17 +141,7 @@ class SendVideoNote:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(video_note, str):
diff --git a/pyrogram/methods/messages/send_voice.py b/pyrogram/methods/messages/send_voice.py
index e9923466..83bcb633 100644
--- a/pyrogram/methods/messages/send_voice.py
+++ b/pyrogram/methods/messages/send_voice.py
@@ -146,17 +146,7 @@ class SendVoice:
reply_to = None
if reply_to_message_id or message_thread_id:
- reply_to_msg_id = None
- top_msg_id = None
- if message_thread_id:
- if not reply_to_message_id:
- reply_to_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- top_msg_id = message_thread_id
- else:
- reply_to_msg_id = reply_to_message_id
- reply_to = raw.types.InputReplyToMessage(reply_to_msg_id=reply_to_msg_id, top_msg_id=top_msg_id)
+ reply_to = types.InputReplyToMessage(reply_to_message_id=reply_to_message_id, message_thread_id=message_thread_id)
try:
if isinstance(voice, str):
diff --git a/pyrogram/types/input_message_content/__init__.py b/pyrogram/types/input_message_content/__init__.py
index b445f3ba..91b5dfbb 100644
--- a/pyrogram/types/input_message_content/__init__.py
+++ b/pyrogram/types/input_message_content/__init__.py
@@ -17,8 +17,9 @@
# along with Pyrogram. If not, see .
from .input_message_content import InputMessageContent
+from .input_reply_to_message import InputReplyToMessage
from .input_text_message_content import InputTextMessageContent
__all__ = [
- "InputMessageContent", "InputTextMessageContent"
+ "InputMessageContent", "InputReplyToMessage", "InputTextMessageContent"
]
diff --git a/pyrogram/types/input_message_content/input_reply_to_message.py b/pyrogram/types/input_message_content/input_reply_to_message.py
new file mode 100644
index 00000000..52b284d0
--- /dev/null
+++ b/pyrogram/types/input_message_content/input_reply_to_message.py
@@ -0,0 +1,62 @@
+# Pyrofork - Telegram MTProto API Client Library for Python
+# Copyright (C) 2022-present Mayuri-Chan
+#
+# This file is part of Pyrofork.
+#
+# Pyrofork 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.
+#
+# Pyrofork 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 Pyrofork. If not, see .
+
+from pyrogram import raw
+from ..object import Object
+
+
+class InputReplyToMessage(Object):
+ """Contains information about a target replied message.
+
+
+ Parameters:
+ reply_to_message_id (``int``, *optional*):
+ ID of the original message you want to reply.
+
+ message_thread_id (``int``, *optional*):
+ Unique identifier for the target message thread (topic) of the forum.
+ for forum supergroups only.
+ """
+
+ def __init__(
+ self, *,
+ reply_to_message_id: int = None,
+ message_thread_id: int = None
+ ):
+ super().__init__()
+
+ self.reply_to_message_id = reply_to_message_id
+ self.message_thread_id = message_thread_id
+
+ def write(self):
+ reply_to_msg_id = None
+ top_msg_id = None
+ if self.reply_to_message_id or self.reply_to_message_id:
+ if self.message_thread_id:
+ if not self.reply_to_message_id:
+ reply_to_msg_id = self.message_thread_id
+ else:
+ reply_to_msg_id = self.reply_to_message_id
+ top_msg_id = self.message_thread_id
+ else:
+ reply_to_msg_id = self.reply_to_message_id
+ return raw.types.InputReplyToMessage(
+ reply_to_msg_id=reply_to_msg_id,
+ top_msg_id=top_msg_id
+ ).write()
+ return None