X Tutup
Skip to content

Commit a5671a8

Browse files
authored
Merge pull request python-telegram-bot#423 from python-telegram-bot/edit-class-method
Add edit_* class methods
2 parents a149595 + 9928a1e commit a5671a8

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed

telegram/callbackquery.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,52 @@ def to_dict(self):
6969
def answer(self, *args, **kwargs):
7070
"""Shortcut for ``bot.answerCallbackQuery(update.callback_query.id, *args, **kwargs)``"""
7171
return self.bot.answerCallbackQuery(self.id, *args, **kwargs)
72+
73+
def edit_message_text(self, *args, **kwargs):
74+
"""
75+
Shortcut for either ``bot.editMessageText(chat_id=update.callback_query.message.chat_id, \
76+
message_id=update.callback_query.message.message_id, \
77+
*args, **kwargs)``
78+
or ``bot.editMessageText(inline_message_id=update.callback_query.inline_message_id, \
79+
*args, **kwargs)``
80+
"""
81+
if self.inline_message_id:
82+
return self.bot.edit_message_text(
83+
inline_message_id=self.inline_message_id, *args, **kwargs)
84+
else:
85+
return self.bot.edit_message_text(
86+
chat_id=self.message.chat_id, message_id=self.message.message_id, *args, **kwargs)
87+
88+
def edit_message_caption(self, *args, **kwargs):
89+
"""
90+
Shortcut for either
91+
``bot.editMessageCaption(chat_id=update.callback_query.message.chat_id, \
92+
message_id=update.callback_query.message.message_id, \
93+
*args, **kwargs)``
94+
or
95+
``bot.editMessageCaption(inline_message_id=update.callback_query.inline_message_id, \
96+
*args, **kwargs)``
97+
"""
98+
if self.inline_message_id:
99+
return self.bot.edit_message_caption(
100+
inline_message_id=self.inline_message_id, *args, **kwargs)
101+
else:
102+
return self.bot.edit_message_caption(
103+
chat_id=self.message.chat_id, message_id=self.message.message_id, *args, **kwargs)
104+
105+
def edit_message_reply_markup(self, *args, **kwargs):
106+
"""
107+
Shortcut for either
108+
``bot.editMessageReplyMarkup(chat_id=update.callback_query.message.chat_id, \
109+
message_id=update.callback_query.message.message_id, \
110+
*args, **kwargs)``
111+
or
112+
``bot.editMessageReplyMarkup(inline_message_id=update.callback_query.inline_message_id, \
113+
*args, **kwargs)``
114+
"""
115+
if self.inline_message_id:
116+
return self.bot.edit_message_reply_markup(
117+
inline_message_id=self.inline_message_id, *args, **kwargs)
118+
else:
119+
return self.bot.edit_message_reply_markup(
120+
chat_id=self.message.chat_id, message_id=self.message.message_id, *args, **kwargs)

telegram/message.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,48 @@ def forward(self, chat_id, disable_notification=False):
412412
disable_notification=disable_notification,
413413
message_id=self.message_id)
414414

415+
def edit_text(self, *args, **kwargs):
416+
"""
417+
Shortcut for ``bot.editMessageText(chat_id=message.chat_id,
418+
message_id=message.message_id,
419+
*args, **kwargs)``
420+
421+
Note:
422+
You can only edit messages that the bot sent itself,
423+
therefore this method can only be used on the
424+
return value of the bot.send_* family of methods.
425+
"""
426+
return self.bot.edit_message_text(
427+
chat_id=self.chat_id, message_id=self.message_id, *args, **kwargs)
428+
429+
def edit_caption(self, *args, **kwargs):
430+
"""
431+
Shortcut for ``bot.editMessageCaption(chat_id=message.chat_id,
432+
message_id=message.message_id,
433+
*args, **kwargs)``
434+
435+
Note:
436+
You can only edit messages that the bot sent itself,
437+
therefore this method can only be used on the
438+
return value of the bot.send_* family of methods.
439+
"""
440+
return self.bot.edit_message_caption(
441+
chat_id=self.chat_id, message_id=self.message_id, *args, **kwargs)
442+
443+
def edit_reply_markup(self, *args, **kwargs):
444+
"""
445+
Shortcut for ``bot.editReplyMarkup(chat_id=message.chat_id,
446+
message_id=message.message_id,
447+
*args, **kwargs)``
448+
449+
Note:
450+
You can only edit messages that the bot sent itself,
451+
therefore this method can only be used on the
452+
return value of the bot.send_* family of methods.
453+
"""
454+
return self.bot.edit_message_caption(
455+
chat_id=self.chat_id, message_id=self.message_id, *args, **kwargs)
456+
415457
def parse_entity(self, entity):
416458
"""
417459
Returns the text from a given :class:`telegram.MessageEntity`.

tests/test_message.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,15 @@ def test_forward(self):
7676
self.assertTrue(self.is_json(message.to_json()))
7777
self.assertEqual(message.text, 'Testing class method')
7878

79+
@flaky(3, 1)
80+
def test_edit_text(self):
81+
"""Test for Message.edit_text"""
82+
message = self._bot.sendMessage(self._chat_id, '.')
83+
message = message.edit_text('Testing class method')
84+
85+
self.assertTrue(self.is_json(message.to_json()))
86+
self.assertEqual(message.text, 'Testing class method')
87+
7988

8089
if __name__ == '__main__':
8190
unittest.main()

0 commit comments

Comments
 (0)
X Tutup