diff --git a/telegram/message.py b/telegram/message.py
index 5a0c9d2f9..d72d3d12f 100644
--- a/telegram/message.py
+++ b/telegram/message.py
@@ -23,6 +23,7 @@ import sys
from telegram import (Audio, Contact, Document, Chat, Location, PhotoSize, Sticker, TelegramObject,
User, Video, Voice, Venue, MessageEntity, Game, Invoice, SuccessfulPayment,
VideoNote)
+from telegram import ParseMode
from telegram.utils.deprecate import warn_deprecate_obj
from telegram.utils.helpers import escape_html, escape_markdown, to_timestamp, from_timestamp
@@ -426,6 +427,47 @@ class Message(TelegramObject):
self._quote(kwargs)
return self.bot.send_message(self.chat_id, *args, **kwargs)
+ def reply_markdown(self, *args, **kwargs):
+ """Shortcut for::
+
+ bot.send_message(update.message.chat_id, parse_mode=ParseMode.MARKDOWN, *args,
+ **kwargs)
+
+ Sends a message with markdown formatting.
+
+ Keyword Args:
+ quote (:obj:`bool`, optional): If set to ``True``, the message is sent as an actual
+ reply to this message. If ``reply_to_message_id`` is passed in ``kwargs``, this
+ parameter will be ignored. Default: ``True`` in group chats and ``False`` in
+ private chats.
+ """
+
+ kwargs['parse_mode'] = ParseMode.MARKDOWN
+
+ self._quote(kwargs)
+
+ return self.bot.send_message(self.chat_id, *args, **kwargs)
+
+ def reply_html(self, *args, **kwargs):
+ """Shortcut for::
+
+ bot.send_message(update.message.chat_id, parse_mode=ParseMode.HTML, *args, **kwargs)
+
+ Sends a message with HTML formatting.
+
+ Keyword Args:
+ quote (:obj:`bool`, optional): If set to ``True``, the message is sent as an actual
+ reply to this message. If ``reply_to_message_id`` is passed in ``kwargs``, this
+ parameter will be ignored. Default: ``True`` in group chats and ``False`` in
+ private chats.
+ """
+
+ kwargs['parse_mode'] = ParseMode.HTML
+
+ self._quote(kwargs)
+
+ return self.bot.send_message(self.chat_id, *args, **kwargs)
+
def reply_photo(self, *args, **kwargs):
"""Shortcut for::
diff --git a/tests/test_message.py b/tests/test_message.py
index 7d897edc3..d547b8dd0 100644
--- a/tests/test_message.py
+++ b/tests/test_message.py
@@ -20,6 +20,7 @@ from datetime import datetime
import pytest
+from telegram import ParseMode
from telegram import (Update, Message, User, MessageEntity, Chat, Audio, Document,
Game, PhotoSize, Sticker, Video, Voice, VideoNote, Contact, Location, Venue,
Invoice, SuccessfulPayment)
@@ -241,6 +242,55 @@ class TestMessage(object):
assert message.reply_text('test', quote=True)
assert message.reply_text('test', reply_to_message_id=message.message_id, quote=True)
+ def test_reply_markdown(self, monkeypatch, message):
+ test_md_string = ('Test for <*bold*, _ita\_lic_, `code`, [links](http://github.com/) and '
+ '```pre```. http://google.com')
+
+ def test(*args, **kwargs):
+ cid = args[1] == message.chat_id
+ markdown_text = args[2] == test_md_string
+ markdown_enabled = kwargs['parse_mode'] == ParseMode.MARKDOWN
+ if kwargs.get('reply_to_message_id'):
+ reply = kwargs['reply_to_message_id'] == message.message_id
+ else:
+ reply = True
+ return all([cid, markdown_text, reply, markdown_enabled])
+
+ text_markdown = self.test_message.text_markdown
+ assert text_markdown == test_md_string
+
+ monkeypatch.setattr('telegram.Bot.send_message', test)
+ assert message.reply_markdown(self.test_message.text_markdown)
+ assert message.reply_markdown(self.test_message.text_markdown, quote=True)
+ assert message.reply_markdown(self.test_message.text_markdown,
+ reply_to_message_id=message.message_id,
+ quote=True)
+
+ def test_reply_html(self, monkeypatch, message):
+ test_html_string = ('Test for <bold, ita_lic, code
, '
+ 'links and
pre. ' + 'http://google.com') + + def test(*args, **kwargs): + cid = args[1] == message.chat_id + html_text = args[2] == test_html_string + html_enabled = kwargs['parse_mode'] == ParseMode.HTML + if kwargs.get('reply_to_message_id'): + reply = kwargs['reply_to_message_id'] == message.message_id + else: + reply = True + return all([cid, html_text, reply, html_enabled]) + + text_html = self.test_message.text_html + assert text_html == test_html_string + + monkeypatch.setattr('telegram.Bot.send_message', test) + assert message.reply_html(self.test_message.text_html) + assert message.reply_html(self.test_message.text_html, quote=True) + assert message.reply_html(self.test_message.text_html, + reply_to_message_id=message.message_id, + quote=True) + def test_reply_photo(self, monkeypatch, message): def test(*args, **kwargs): id = args[1] == message.chat_id