def text_html(self): """ Creates an html-formatted string from the markup entities found in the message (uses ``parse_entities``). Use this if you want to retrieve the original string sent by the bot, as opposed to the plain text with corresponding markup entities. Returns: str """ entities = self.parse_entities() message_text = self.text if not sys.maxunicode == 0xffff: message_text = message_text.encode('utf-16-le') markdown_text = '' last_offset = 0 for entity, text in sorted(entities.items(), key=(lambda item: item[0].offset)): text = escape_html(text) if entity.type == MessageEntity.TEXT_LINK: insert = '<a href="{}">{}</a>'.format(entity.url, text) elif entity.type == MessageEntity.URL: insert = '<a href="{0}">{0}</a>'.format(text) elif entity.type == MessageEntity.BOLD: insert = '<b>' + text + '</b>' elif entity.type == MessageEntity.ITALIC: insert = '<i>' + text + '</i>' elif entity.type == MessageEntity.CODE: insert = '<code>' + text + '</code>' elif entity.type == MessageEntity.PRE: insert = '<pre>' + text + '</pre>' else: insert = text if sys.maxunicode == 0xffff: markdown_text += escape_html( message_text[last_offset:entity.offset]) + insert else: markdown_text += escape_html( message_text[last_offset * 2:entity.offset * 2].decode('utf-16-le')) + insert last_offset = entity.offset + entity.length if sys.maxunicode == 0xffff: markdown_text += escape_html(message_text[last_offset:]) else: markdown_text += escape_html(message_text[last_offset * 2:].decode('utf-16-le')) return markdown_text
def text_html(self): """ Creates an html-formatted string from the markup entities found in the message (uses ``parse_entities``). Use this if you want to retrieve the original string sent by the bot, as opposed to the plain text with corresponding markup entities. Returns: str """ entities = self.parse_entities() message_text = self.text if not sys.maxunicode == 0xffff: message_text = message_text.encode('utf-16-le') markdown_text = '' last_offset = 0 for entity, text in sorted(entities.items(), key=(lambda item: item[0].offset)): text = escape_html(text) if entity.type == MessageEntity.TEXT_LINK: insert = '<a href="{}">{}</a>'.format(entity.url, text) elif entity.type == MessageEntity.URL: insert = '<a href="{0}">{0}</a>'.format(text) elif entity.type == MessageEntity.BOLD: insert = '<b>' + text + '</b>' elif entity.type == MessageEntity.ITALIC: insert = '<i>' + text + '</i>' elif entity.type == MessageEntity.CODE: insert = '<code>' + text + '</code>' elif entity.type == MessageEntity.PRE: insert = '<pre>' + text + '</pre>' else: insert = text if sys.maxunicode == 0xffff: markdown_text += escape_html(message_text[last_offset:entity.offset]) + insert else: markdown_text += escape_html(message_text[last_offset * 2:entity.offset * 2] .decode('utf-16-le')) + insert last_offset = entity.offset + entity.length if sys.maxunicode == 0xffff: markdown_text += escape_html(message_text[last_offset:]) else: markdown_text += escape_html(message_text[last_offset * 2:].decode('utf-16-le')) return markdown_text
def _text_html(self, urled=False): entities = self.parse_entities() message_text = self.text if not sys.maxunicode == 0xffff: message_text = message_text.encode('utf-16-le') html_text = '' last_offset = 0 for entity, text in sorted(entities.items(), key=(lambda item: item[0].offset)): text = escape_html(text) if entity.type == MessageEntity.TEXT_LINK: insert = '<a href="{}">{}</a>'.format(entity.url, text) elif (entity.type == MessageEntity.URL) and urled: insert = '<a href="{0}">{0}</a>'.format(text) elif entity.type == MessageEntity.BOLD: insert = '<b>' + text + '</b>' elif entity.type == MessageEntity.ITALIC: insert = '<i>' + text + '</i>' elif entity.type == MessageEntity.CODE: insert = '<code>' + text + '</code>' elif entity.type == MessageEntity.PRE: insert = '<pre>' + text + '</pre>' else: insert = text if sys.maxunicode == 0xffff: html_text += escape_html( message_text[last_offset:entity.offset]) + insert else: html_text += escape_html( message_text[last_offset * 2:entity.offset * 2].decode('utf-16-le')) + insert last_offset = entity.offset + entity.length if sys.maxunicode == 0xffff: html_text += escape_html(message_text[last_offset:]) else: html_text += escape_html(message_text[last_offset * 2:].decode('utf-16-le')) return html_text
def _text_html(self, urled=False): entities = self.parse_entities() message_text = self.text if not sys.maxunicode == 0xffff: message_text = message_text.encode('utf-16-le') html_text = '' last_offset = 0 for entity, text in sorted(entities.items(), key=(lambda item: item[0].offset)): text = escape_html(text) if entity.type == MessageEntity.TEXT_LINK: insert = '<a href="{}">{}</a>'.format(entity.url, text) elif (entity.type == MessageEntity.URL) and urled: insert = '<a href="{0}">{0}</a>'.format(text) elif entity.type == MessageEntity.BOLD: insert = '<b>' + text + '</b>' elif entity.type == MessageEntity.ITALIC: insert = '<i>' + text + '</i>' elif entity.type == MessageEntity.CODE: insert = '<code>' + text + '</code>' elif entity.type == MessageEntity.PRE: insert = '<pre>' + text + '</pre>' else: insert = text if sys.maxunicode == 0xffff: html_text += escape_html(message_text[last_offset:entity.offset]) + insert else: html_text += escape_html(message_text[last_offset * 2:entity.offset * 2] .decode('utf-16-le')) + insert last_offset = entity.offset + entity.length if sys.maxunicode == 0xffff: html_text += escape_html(message_text[last_offset:]) else: html_text += escape_html(message_text[last_offset * 2:].decode('utf-16-le')) return html_text