Nikita Kalanakov 2 жил өмнө
parent
commit
a98723c63e
1 өөрчлөгдсөн 20 нэмэгдсэн , 3 устгасан
  1. 20 3
      utils.py

+ 20 - 3
utils.py

@@ -4,7 +4,14 @@ from datetime import datetime
 from collections import namedtuple
 
 from telethon.utils import get_display_name
-from telethon.tl.types import MessageEntityBold, MessageEntityItalic, MessageEntityStrike, MessageEntityCode
+from telethon.tl.types import (
+  MessageEntityBold,
+  MessageEntityItalic,
+  MessageEntityStrike,
+  MessageEntityCode,
+  MessageEntityPre,
+  MessageEntitySpoiler
+)
 
 Command = namedtuple(
   'Command', 
@@ -137,14 +144,21 @@ DELIMITERS = {
   MessageEntityItalic: '__',
   MessageEntityStrike: '~~',
   MessageEntityCode:   '`',
+  MessageEntityPre:    '`',
 }
 
 class LookupTable:
   def __init__(self):
     self._start = {}
     self._end = {}
+    self._spoiler = []
 
   def insert(self, entity):
+    if type(entity) is MessageEntitySpoiler:
+      self._spoiler.extend(range(entity.offset, entity.offset + entity.length))
+
+      return
+
     delimiter = DELIMITERS.get(type(entity))
     if not delimiter:
       return
@@ -172,12 +186,15 @@ class LookupTable:
     text = list(text) + ['']
     result = ''
 
-    for position, character in zip(range(len(text)), text):
+    for position, character in zip(range(len(text)), text):     
       delimiter = self._lookup(position)
       if delimiter:
         result += delimiter
 
-      result += character
+      if position in self._spoiler:
+        result += '█'
+      else:
+        result += character
 
     return result