Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from telethon.extensions import markdown
- from telethon import types
- from telethon.tl.types import MessageEntityCustomEmoji, MessageEntitySpoiler, MessageEntityTextUrl, ReactionCustomEmoji, MessageEntityBlockquote, MessageEntityItalic, MessageEntityUnderline, MessageEntityCode, MessageEntityStrike, MessageEntityBold, MessageEntityPre
- class AaycoBot:
- @staticmethod
- def parse(text):
- text, entities = markdown.parse(text)
- for i, e in enumerate(entities):
- if ((isinstance(e, MessageEntityTextUrl)) and e.url.startswith('tg://emoji?id=')):
- entities[i] = MessageEntityCustomEmoji(e.offset, e.length, int(e.url.split('=')[1]))
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'spoiler'):
- entities[i] = types.MessageEntitySpoiler(e.offset, e.length)
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'quote'):
- entities[i] = types.MessageEntityBlockquote(e.offset, e.length)
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'italic'):
- entities[i] = types.MessageEntityItalic(e.offset, e.length)
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'underline'):
- entities[i] = types.MessageEntityUnderline(e.offset, e.length)
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'code'):
- entities[i] = types.MessageEntityCode(e.offset, e.length)
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'strike'):
- entities[i] = types.MessageEntityStrike(e.offset, e.length)
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'bold'):
- entities[i] = types.MessageEntityBold(e.offset, e.length)
- elif ((isinstance(e, MessageEntityTextUrl)) and e.url.startswith('pre:')):
- entities[i] = MessageEntityPre(e.offset, e.length, str(e.url.split(':')[1]))
- return text, entities
- @staticmethod
- def unparse(text, entities):
- for i, e in enumerate(entities or []):
- if isinstance(e, MessageEntityCustomEmoji):
- entities[i] = MessageEntityTextUrl(e.offset, e.length, f'tg://emoji?id={e.document_id}')
- elif isinstance(e, types.MessageEntitySpoiler):
- entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'spoiler')
- elif ((isinstance(e, MessageEntityBlockquote))):
- entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'quote')
- elif ((isinstance(e, MessageEntityItalic))):
- entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'italic')
- elif ((isinstance(e, MessageEntityUnderline))):
- entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'underline')
- elif ((isinstance(e, MessageEntityCode))):
- entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'code')
- elif ((isinstance(e, MessageEntityStrike))):
- entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'strike')
- elif ((isinstance(e, MessageEntityBold))):
- entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'bold')
- elif isinstance(e, MessageEntityPre):
- entities[i] = MessageEntityTextUrl(e.offset, e.length, f'pre:{e.language}')
- return markdown.unparse(text, entities)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement