Advertisement
Aayco

Custom Parser (Aayco)

Mar 6th, 2025 (edited)
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.36 KB | None | 0 0
  1. from telethon.extensions import markdown
  2. from telethon import types
  3. from telethon.tl.types import MessageEntityCustomEmoji, MessageEntitySpoiler, MessageEntityTextUrl, ReactionCustomEmoji, MessageEntityBlockquote, MessageEntityItalic, MessageEntityUnderline, MessageEntityCode, MessageEntityStrike, MessageEntityBold, MessageEntityPre
  4.  
  5. class AaycoBot:
  6.     @staticmethod
  7.     def parse(text):
  8.        text, entities = markdown.parse(text)
  9.        for i, e in enumerate(entities):
  10.           if ((isinstance(e, MessageEntityTextUrl)) and e.url.startswith('tg://emoji?id=')):
  11.              entities[i] = MessageEntityCustomEmoji(e.offset, e.length, int(e.url.split('=')[1]))
  12.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'spoiler'):
  13.                 entities[i] = types.MessageEntitySpoiler(e.offset, e.length)
  14.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'quote'):
  15.                 entities[i] = types.MessageEntityBlockquote(e.offset, e.length)
  16.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'italic'):
  17.                 entities[i] = types.MessageEntityItalic(e.offset, e.length)
  18.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'underline'):
  19.                 entities[i] = types.MessageEntityUnderline(e.offset, e.length)
  20.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'code'):
  21.                 entities[i] = types.MessageEntityCode(e.offset, e.length)
  22.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'strike'):
  23.                 entities[i] = types.MessageEntityStrike(e.offset, e.length)
  24.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url == 'bold'):
  25.                 entities[i] = types.MessageEntityBold(e.offset, e.length)
  26.           elif ((isinstance(e, MessageEntityTextUrl)) and e.url.startswith('pre:')):
  27.              entities[i] = MessageEntityPre(e.offset, e.length, str(e.url.split(':')[1]))
  28.        return text, entities
  29.     @staticmethod
  30.     def unparse(text, entities):
  31.        for i, e in enumerate(entities or []):
  32.           if isinstance(e, MessageEntityCustomEmoji):
  33.              entities[i] = MessageEntityTextUrl(e.offset, e.length, f'tg://emoji?id={e.document_id}')
  34.           elif isinstance(e, types.MessageEntitySpoiler):
  35.              entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'spoiler')
  36.           elif ((isinstance(e, MessageEntityBlockquote))):
  37.                 entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'quote')
  38.           elif ((isinstance(e, MessageEntityItalic))):
  39.                 entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'italic')
  40.           elif ((isinstance(e, MessageEntityUnderline))):
  41.                 entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'underline')
  42.           elif ((isinstance(e, MessageEntityCode))):
  43.                 entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'code')
  44.           elif ((isinstance(e, MessageEntityStrike))):
  45.                 entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'strike')
  46.           elif ((isinstance(e, MessageEntityBold))):
  47.                 entities[i] = types.MessageEntityTextUrl(e.offset, e.length, 'bold')
  48.           elif isinstance(e, MessageEntityPre):
  49.                 entities[i] = MessageEntityTextUrl(e.offset, e.length, f'pre:{e.language}')
  50.        return markdown.unparse(text, entities)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement