Skip to content

Commit e5fe9f3

Browse files
Refactor Message bound methods
- Split Message.reply_* bound methods into reply/answer - Added some new bound methods - Mark send_web_page as deprecated and removed reply_web_page bound method - Update build dependencies Closes #267
1 parent f27f2df commit e5fe9f3

11 files changed

Lines changed: 4911 additions & 2322 deletions

File tree

compiler/docs/compiler.py

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,6 @@ def get_title_list(s: str) -> list:
298298
get_direct_messages_chat_topic_history
299299
delete_direct_messages_chat_topic_history
300300
set_direct_messages_chat_topic_is_marked_as_unread
301-
send_web_page
302301
start_bot
303302
delete_chat_history
304303
send_paid_media
@@ -957,43 +956,68 @@ def get_title_list(s: str) -> list:
957956
categories = dict(
958957
message="""
959958
Message
960-
Message.click
961-
Message.delete
962-
Message.download
963-
Message.forward
964-
Message.copy
965-
Message.copy_media_group
966-
Message.pin
967-
Message.unpin
968-
Message.edit
969-
Message.edit_text
970-
Message.edit_caption
971-
Message.edit_media
972-
Message.edit_checklist
973-
Message.edit_reply_markup
974-
Message.reply
975-
Message.reply_text
976959
Message.reply_animation
960+
Message.answer_animation
977961
Message.reply_audio
978-
Message.reply_cached_media
979-
Message.reply_chat_action
962+
Message.answer_audio
980963
Message.reply_contact
964+
Message.answer_contact
981965
Message.reply_document
966+
Message.answer_document
982967
Message.reply_game
983-
Message.reply_inline_bot_result
968+
Message.answer_game
969+
Message.reply_invoice
970+
Message.answer_invoice
984971
Message.reply_location
972+
Message.answer_location
985973
Message.reply_media_group
974+
Message.answer_media_group
975+
Message.reply
976+
Message.reply_text
977+
Message.answer
986978
Message.reply_photo
979+
Message.answer_photo
987980
Message.reply_poll
981+
Message.answer_poll
982+
Message.reply_dice
983+
Message.answer_dice
988984
Message.reply_sticker
985+
Message.answer_sticker
989986
Message.reply_venue
987+
Message.answer_venue
990988
Message.reply_video
989+
Message.answer_video
991990
Message.reply_video_note
991+
Message.answer_video_note
992992
Message.reply_voice
993-
Message.reply_web_page
994-
Message.reply_checklist
993+
Message.answer_voice
994+
Message.reply_paid_media
995+
Message.answer_paid_media
996+
Message.reply_cached_media
997+
Message.answer_cached_media
995998
Message.get_media_group
999+
Message.reply_chat_action
1000+
Message.reply_inline_bot_result
1001+
Message.answer_inline_bot_result
1002+
Message.reply_checklist
1003+
Message.answer_checklist
1004+
Message.edit_text
1005+
Message.edit
1006+
Message.edit_caption
1007+
Message.edit_media
1008+
Message.edit_checklist
1009+
Message.edit_reply_markup
1010+
Message.forward
1011+
Message.copy
1012+
Message.copy_media_group
1013+
Message.delete
1014+
Message.click
9961015
Message.react
1016+
Message.retract_vote
1017+
Message.download
1018+
Message.vote
1019+
Message.pin
1020+
Message.unpin
9971021
Message.read
9981022
Message.view
9991023
Message.pay

pyproject.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,17 @@ Community = "https://t.me/kurigram_chat"
5858

5959
[project.optional-dependencies]
6060
dev = [
61-
"keyring<=25.1.0",
62-
"hatch<=1.7.0",
63-
"pytest<=7.4.3",
64-
"pytest-asyncio<=0.21.1",
65-
"pytest-cov<=4.1.0",
66-
"twine<=4.0.2",
61+
"keyring<=25.7.0",
62+
"hatch<=1.16.2",
63+
"pytest<=9.0.2",
64+
"pytest-asyncio<=1.3.0",
65+
"pytest-cov<=7.0.0",
66+
"twine<=6.2.0",
6767
]
6868

6969
docs = [
7070
"Sphinx<=9.0.4",
71-
"shibuya<=2025.12.17",
71+
"shibuya<=2025.12.19",
7272
"sphinx-autobuild<=2025.8.25",
7373
"sphinx-copybutton<=0.5.2",
7474
"sphinx-iconify<=0.2.1",

pyrogram/methods/bots/send_invoice.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,14 @@ async def send_invoice(
5959
direct_messages_topic_id: Optional[int] = None,
6060
suggested_post_parameters: Optional["types.SuggestedPostParameters"] = None,
6161
subscription_expiration_date: Optional[int] = None,
62-
reply_markup: Optional[Union[
63-
"types.InlineKeyboardMarkup",
64-
"types.ReplyKeyboardMarkup",
65-
"types.ReplyKeyboardRemove",
66-
"types.ForceReply"
67-
]] = None,
62+
reply_markup: Optional[
63+
Union[
64+
"types.InlineKeyboardMarkup",
65+
"types.ReplyKeyboardMarkup",
66+
"types.ReplyKeyboardRemove",
67+
"types.ForceReply"
68+
]
69+
] = None,
6870
caption: str = "",
6971
parse_mode: Optional["enums.ParseMode"] = None,
7072
caption_entities: Optional[List["types.MessageEntity"]] = None,
@@ -119,13 +121,13 @@ async def send_invoice(
119121
URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for.
120122
121123
photo_size (``int``, *optional*):
122-
Photo size in bytes
124+
Photo size in bytes.
123125
124126
photo_width (``int``, *optional*):
125-
Photo width
127+
Photo width.
126128
127129
photo_height (``int``, *optional*):
128-
Photo height
130+
Photo height.
129131
130132
need_name (``bool``, *optional*):
131133
Pass True if you require the user's full name to complete the order. Ignored for payments in `Telegram Stars <https://t.me/BotNews/90>`_.

pyrogram/methods/messages/edit_message_caption.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ async def edit_message_caption(
3232
parse_mode: Optional["enums.ParseMode"] = None,
3333
caption_entities: List["types.MessageEntity"] = None,
3434
schedule_date: datetime = None,
35+
business_connection_id: str = None,
3536
reply_markup: "types.InlineKeyboardMarkup" = None
3637
) -> "types.Message":
3738
"""Edit the caption of media messages.
@@ -60,6 +61,9 @@ async def edit_message_caption(
6061
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
6162
Date when the message will be automatically sent.
6263
64+
business_connection_id (``str``, *optional*):
65+
Unique identifier of the business connection on behalf of which the message will be sent.
66+
6367
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
6468
An InlineKeyboardMarkup object.
6569
@@ -78,5 +82,6 @@ async def edit_message_caption(
7882
parse_mode=parse_mode,
7983
entities=caption_entities,
8084
schedule_date=schedule_date,
85+
business_connection_id=business_connection_id,
8186
reply_markup=reply_markup
8287
)

pyrogram/methods/messages/edit_message_media.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ async def edit_message_media(
3737
media: "types.InputMedia",
3838
show_caption_above_media: bool = None,
3939
schedule_date: datetime = None,
40+
business_connection_id: str = None,
4041
reply_markup: "types.InlineKeyboardMarkup" = None,
4142
file_name: str = None
4243
) -> "types.Message":
@@ -69,6 +70,9 @@ async def edit_message_media(
6970
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
7071
Date when the message will be automatically sent.
7172
73+
business_connection_id (``str``, *optional*):
74+
Unique identifier of the business connection on behalf of which the message will be sent.
75+
7276
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
7377
An InlineKeyboardMarkup object.
7478
@@ -291,7 +295,8 @@ async def edit_message_media(
291295
reply_markup=await reply_markup.write(self) if reply_markup else None,
292296
message=message,
293297
entities=entities
294-
)
298+
),
299+
business_connection_id=business_connection_id
295300
)
296301

297302
for i in r.updates:

pyrogram/methods/messages/edit_message_text.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ async def edit_message_text(
3737
link_preview_options: "types.LinkPreviewOptions" = None,
3838
show_caption_above_media: bool = None,
3939
schedule_date: datetime = None,
40+
business_connection_id: str = None,
4041
reply_markup: "types.InlineKeyboardMarkup" = None,
4142
disable_web_page_preview: bool = None,
4243
) -> "types.Message":
@@ -72,6 +73,9 @@ async def edit_message_text(
7273
schedule_date (:py:obj:`~datetime.datetime`, *optional*):
7374
Date when the message will be automatically sent.
7475
76+
business_connection_id (``str``, *optional*):
77+
Unique identifier of the business connection on behalf of which the message will be sent.
78+
7579
reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
7680
An InlineKeyboardMarkup object.
7781
@@ -86,7 +90,7 @@ async def edit_message_text(
8690
8791
# Take the same text message, remove the web page preview only
8892
from pyrogram import types
89-
93+
9094
await app.edit_message_text(
9195
chat_id, message_id, message.text,
9296
link_preview_options=types.LinkPreviewOptions(is_disabled=True))
@@ -108,7 +112,8 @@ async def edit_message_text(
108112
schedule_date=utils.datetime_to_timestamp(schedule_date),
109113
reply_markup=await reply_markup.write(self) if reply_markup else None,
110114
**await utils.parse_text_entities(self, text, parse_mode, entities)
111-
)
115+
),
116+
business_connection_id=business_connection_id
112117
)
113118

114119
for i in r.updates:

0 commit comments

Comments
 (0)