فهرست منبع

Update (WIP).

Nikita Kalanakov 2 سال پیش
والد
کامیت
b2167d525c
2فایلهای تغییر یافته به همراه11 افزوده شده و 12 حذف شده
  1. 8 1
      makeshot/makeshot.c
  2. 3 11
      utils.py

+ 8 - 1
makeshot/makeshot.c

@@ -174,6 +174,8 @@ void buffer_append_escaped(buffer_t *buffer, char c) {
     if (strncmp(&text[i], s, k) == 0) {\
       i += k-1;\
       buffer_append_data(buffer, "<", 1);\
+      if (*tag == ' ')\
+        BUFFER_APPEND(buffer, 'span');\
       BUFFER_APPEND(buffer, tag);\
       buffer_append_data(buffer, ">", 1);\
       if (pr)\
@@ -181,7 +183,10 @@ void buffer_append_escaped(buffer_t *buffer, char c) {
       else\
         BUFFER_CONCAT(buffer, temp_buffer);\
       buffer_append_data(buffer, "</", 2);\
-      BUFFER_APPEND(buffer, tag);\
+      if (*tag == ' ')\
+        BUFFER_APPEND(buffer, 'span');\
+      else\
+        BUFFER_APPEND(buffer, tag);\
       buffer_append_data(buffer, ">", 1);\
       free_buffer(temp_buffer);\
       goto escape;\
@@ -213,6 +218,8 @@ void preprocess_text(buffer_t *buffer, char *text) {
       SET("~~", "s", 1);
     else if (c == 0xee && nc == 0x80 && fc == 0x80)
       SET("\xee\x80\x80", "u", 1);
+    else if (c == 0xee && nc == 0x80 && fc == 0x81)
+      SET("\xee\x80\x81", " fgcolor=\"#ffffff\"", 0);
     else
       buffer_append_escaped(buffer, c);
 escape:;

+ 3 - 11
utils.py

@@ -146,21 +146,16 @@ DELIMITERS = {
   MessageEntityStrike:    '~~',
   MessageEntityCode:      '`',
   MessageEntityPre:       '`',
-  MessageEntityUnderline: '\ue000'
+  MessageEntityUnderline: '\ue000',
+  MessageEntitySpoiler:   '\ue001'
 }
 
 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
@@ -193,10 +188,7 @@ class LookupTable:
       if delimiter:
         result += delimiter
 
-      if position in self._spoiler:
-        result += '▒'
-      else:
-        result += character
+      result += character
 
     return result