Przeglądaj źródła

update builtin emojis

Yuxin Wu 1 rok temu
rodzic
commit
837a9ef2f7

+ 4 - 1
wechat/msg.py

@@ -113,7 +113,10 @@ class WeChatMsg(object):
             return "[Money Transfer]"
             return "[Money Transfer]"
         elif self.type == TYPE_REPLY:
         elif self.type == TYPE_REPLY:
             pq = PyQuery(self.content_xml_ready)
             pq = PyQuery(self.content_xml_ready)
-            msg = pq('title').text()
+            titles = pq('title')
+            if len(titles) == 0:
+                return self.content_xml_ready
+            msg = titles[0].text
             # TODO parse reply.
             # TODO parse reply.
             return msg
             return msg
         else:
         else:

+ 19 - 9
wechat/smiley.py

@@ -2,10 +2,9 @@
 # -*- coding: UTF-8 -*-
 # -*- coding: UTF-8 -*-
 
 
 import os
 import os
-import functools
+import re
 import re
 import re
 import json
 import json
-import struct
 
 
 from .common.textutil import get_file_b64
 from .common.textutil import get_file_b64
 
 
@@ -40,10 +39,20 @@ TEMPLATE = """.{name} {{
     background-size: 24px 24px;
     background-size: 24px 24px;
 }}"""
 }}"""
 
 
-def _css_class_name(s):
-    s = s.replace("/", "_")
-    s = s.replace(".", "_")
-    return "smiley_" + s
+
+
+def _css_class_name(name: str) -> str:
+    """
+    Sanitizes a string to be a valid CSS class name by replacing invalid characters with underscores.
+    """
+    # CSS class names must start with a letter or underscore, followed by letters, digits, hyphens, or underscores
+    name = re.sub(r'[^a-zA-Z0-9_-]', '_', name)
+
+    # Ensure the first character is a valid start character (letter or underscore)
+    if not name[0].isalpha() and name[0] != '_':
+        name = '_' + name
+    return "smiley_" + name
+
 
 
 class SmileyProvider(object):
 class SmileyProvider(object):
     def __init__(self, html_replace=True):
     def __init__(self, html_replace=True):
@@ -76,7 +85,6 @@ class SmileyProvider(object):
             if k in msg:
             if k in msg:
                 msg = msg.replace(k, self.gen_replace_elem(v))
                 msg = msg.replace(k, self.gen_replace_elem(v))
         return msg
         return msg
-        return msg
 
 
     def gen_used_smiley_css(self):
     def gen_used_smiley_css(self):
         ret = HEAD
         ret = HEAD
@@ -88,6 +96,8 @@ class SmileyProvider(object):
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
     smiley = SmileyProvider()
     smiley = SmileyProvider()
-    msg = u"[挥手]哈哈呵呵hihi\U0001f684\u2728\u0001 /::<\ue415"
+    msg = u"[天啊]哈哈呵呵hihi\U0001f684\u2728\u0001 /::<\ue415"
     msg = smiley.replace_smileycode(msg)
     msg = smiley.replace_smileycode(msg)
-    smiley.gen_used_smiley_css()
+    print(msg)
+    print()
+    print(smiley.gen_used_smiley_css())

BIN
wechat/static/newemoji/666.png


BIN
wechat/static/newemoji/Boring.png


BIN
wechat/static/newemoji/Broken.png


BIN
wechat/static/newemoji/Duh.png


BIN
wechat/static/newemoji/Firecracker.png


BIN
wechat/static/newemoji/Fireworks.png


BIN
wechat/static/newemoji/Flushed.png


BIN
wechat/static/newemoji/Gift.png


BIN
wechat/static/newemoji/Happy.png


BIN
wechat/static/newemoji/Hurt.png


BIN
wechat/static/newemoji/Let Down.png


BIN
wechat/static/newemoji/LetMeSee.png


BIN
wechat/static/newemoji/Lol.png


BIN
wechat/static/newemoji/Party.png


+ 1 - 0
wechat/static/newemoji/README.md

@@ -0,0 +1 @@
+Copied from /data/data/com.tencent.mm/files/public/emoji/newemoji

BIN
wechat/static/newemoji/Sick.png


BIN
wechat/static/newemoji/Sigh.png


BIN
wechat/static/newemoji/Terror.png


BIN
wechat/static/newemoji/Worship.png


+ 0 - 2
wechat/static/newemoji/config.conf

@@ -1,2 +0,0 @@
-{
-	"version": 86}

+ 181 - 1
wechat/static/newemoji/newemoji-config.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 
 
 <newemoji> 
 <newemoji> 
-	<emoji> 
+  <emoji> 
     <key><![CDATA[[Smirk]]]></key>  
     <key><![CDATA[[Smirk]]]></key>  
     <cn-value><![CDATA[[奸笑]]]></cn-value>  
     <cn-value><![CDATA[[奸笑]]]></cn-value>  
     <qq-value><![CDATA[[奸笑]]]></qq-value>  
     <qq-value><![CDATA[[奸笑]]]></qq-value>  
@@ -272,4 +272,184 @@
     <fileName>KeepFighting.png</fileName>  
     <fileName>KeepFighting.png</fileName>  
     <eggIndex>2038</eggIndex> 
     <eggIndex>2038</eggIndex> 
   </emoji> 
   </emoji> 
+  <emoji> 
+    <key><![CDATA[[Boring]]]></key>  
+    <cn-value><![CDATA[[翻白眼]]]></cn-value>  
+    <qq-value><![CDATA[[翻白眼]]]></qq-value>  
+    <en-value><![CDATA[[Boring]]]></en-value>  
+    <tw-value><![CDATA[[翻白眼]]]></tw-value>  
+    <th-value><![CDATA[[Boring]]]></th-value>  
+    <fileName>Boring.png</fileName>  
+    <eggIndex>2043</eggIndex> 
+  </emoji>  
+  <emoji> 
+    <key><![CDATA[[666]]]></key>  
+    <cn-value><![CDATA[[666]]]></cn-value>  
+    <qq-value><![CDATA[[666]]]></qq-value>  
+    <en-value><![CDATA[[Awesome]]]></en-value>  
+    <tw-value><![CDATA[[666]]]></tw-value>  
+    <th-value><![CDATA[[Awesome]]]></th-value>  
+    <fileName>666.png</fileName>  
+    <eggIndex>2044</eggIndex> 
+  </emoji>  
+  <emoji> 
+    <key><![CDATA[[LetMeSee]]]></key>  
+    <cn-value><![CDATA[[让我看看]]]></cn-value>  
+    <qq-value><![CDATA[[让我看看]]]></qq-value>  
+    <en-value><![CDATA[[LetMeSee]]]></en-value>  
+    <tw-value><![CDATA[[讓我看看]]]></tw-value>  
+    <th-value><![CDATA[[LetMeSee]]]></th-value>  
+    <fileName>LetMeSee.png</fileName>  
+    <eggIndex>2045</eggIndex> 
+  </emoji>  
+  <emoji> 
+    <key><![CDATA[[Sigh]]]></key>  
+    <cn-value><![CDATA[[叹气]]]></cn-value>  
+    <qq-value><![CDATA[[叹气]]]></qq-value>  
+    <en-value><![CDATA[[Sigh]]]></en-value>  
+    <tw-value><![CDATA[[嘆息]]]></tw-value>  
+    <th-value><![CDATA[[Sigh]]]></th-value>  
+    <fileName>Sigh.png</fileName>  
+    <eggIndex>2046</eggIndex> 
+  </emoji>  
+  <emoji> 
+    <key><![CDATA[[Hurt]]]></key>  
+    <cn-value><![CDATA[[苦涩]]]></cn-value>  
+    <qq-value><![CDATA[[苦涩]]]></qq-value>  
+    <en-value><![CDATA[[Hurt]]]></en-value>  
+    <tw-value><![CDATA[[難受]]]></tw-value>  
+    <th-value><![CDATA[[Hurt]]]></th-value>  
+    <fileName>Hurt.png</fileName>  
+    <eggIndex>2047</eggIndex> 
+  </emoji>  
+  <emoji> 
+    <key><![CDATA[[Broken]]]></key>  
+    <cn-value><![CDATA[[裂开]]]></cn-value>  
+    <qq-value><![CDATA[[裂开]]]></qq-value>  
+    <en-value><![CDATA[[Broken]]]></en-value>  
+    <tw-value><![CDATA[[崩潰]]]></tw-value>  
+    <th-value><![CDATA[[Broken]]]></th-value>  
+    <fileName>Broken.png</fileName>  
+    <eggIndex>2048</eggIndex> 
+  </emoji>  
+  <emoji> 
+    <key><![CDATA[[Flushed]]]></key>  
+    <cn-value><![CDATA[[脸红]]]></cn-value>  
+    <qq-value><![CDATA[[脸红]]]></qq-value>  
+    <en-value><![CDATA[[Flushed]]]></en-value>  
+    <tw-value><![CDATA[[臉紅]]]></tw-value>  
+    <th-value><![CDATA[[Flushed]]]></th-value>  
+    <fileName>Flushed.png</fileName>  
+    <eggIndex>2049</eggIndex> 
+  </emoji>  
+  <emoji> 
+    <key><![CDATA[[Happy]]]></key>  
+    <cn-value><![CDATA[[笑脸]]]></cn-value>  
+    <qq-value><![CDATA[[笑脸]]]></qq-value>  
+    <en-value><![CDATA[[Happy]]]></en-value>  
+    <tw-value><![CDATA[[笑臉]]]></tw-value>  
+    <th-value><![CDATA[[Happy]]]></th-value>  
+    <fileName>Happy.png</fileName>  
+    <eggIndex>2050</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[Lol]]]></key>  
+    <cn-value><![CDATA[[破涕为笑]]]></cn-value>  
+    <qq-value><![CDATA[[破涕为笑]]]></qq-value>  
+    <en-value><![CDATA[[Lol]]]></en-value>  
+    <tw-value><![CDATA[[破涕為笑]]]></tw-value>  
+    <th-value><![CDATA[[Lol]]]></th-value>  
+    <fileName>Lol.png</fileName>  
+    <eggIndex>2051</eggIndex> 
+  </emoji>   
+  <emoji> 
+    <key><![CDATA[[Fireworks]]]></key>  
+    <cn-value><![CDATA[[烟花]]]></cn-value>  
+    <qq-value><![CDATA[[烟花]]]></qq-value>  
+    <en-value><![CDATA[[Fireworks]]]></en-value>  
+    <tw-value><![CDATA[[煙花]]]></tw-value>  
+    <th-value><![CDATA[[Fireworks]]]></th-value>  
+    <fileName>Fireworks.png</fileName>  
+    <eggIndex>2052</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[gift]]]></key>  
+    <cn-value><![CDATA[[礼物]]]></cn-value>  
+    <qq-value><![CDATA[[礼物]]]></qq-value>  
+    <en-value><![CDATA[[Gift]]]></en-value>  
+    <tw-value><![CDATA[[禮物]]]></tw-value>  
+    <th-value><![CDATA[[Gift]]]></th-value>  
+    <fileName>Gift.png</fileName>  
+    <eggIndex>2053</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[Party]]]></key>  
+    <cn-value><![CDATA[[庆祝]]]></cn-value>  
+    <qq-value><![CDATA[[庆祝]]]></qq-value>  
+    <en-value><![CDATA[[Party]]]></en-value>  
+    <tw-value><![CDATA[[慶祝]]]></tw-value>  
+    <th-value><![CDATA[[Party]]]></th-value>  
+    <fileName>Party.png</fileName>  
+    <eggIndex>2054</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[Terror]]]></key>  
+    <cn-value><![CDATA[[恐惧]]]></cn-value>  
+    <qq-value><![CDATA[[恐惧]]]></qq-value>  
+    <en-value><![CDATA[[Terror]]]></en-value>  
+    <tw-value><![CDATA[[恐懼]]]></tw-value>  
+    <th-value><![CDATA[[Terror]]]></th-value>  
+    <fileName>Terror.png</fileName>  
+    <eggIndex>2055</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[Duh]]]></key>  
+    <cn-value><![CDATA[[无语]]]></cn-value>  
+    <qq-value><![CDATA[[无语]]]></qq-value>  
+    <en-value><![CDATA[[Duh]]]></en-value>  
+    <tw-value><![CDATA[[無語]]]></tw-value>  
+    <th-value><![CDATA[[Duh]]]></th-value>  
+    <fileName>Duh.png</fileName>  
+    <eggIndex>2056</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[LetDown]]]></key>  
+    <cn-value><![CDATA[[失望]]]></cn-value>  
+    <qq-value><![CDATA[[失望]]]></qq-value>  
+    <en-value><![CDATA[[Let Down]]]></en-value>  
+    <tw-value><![CDATA[[失望]]]></tw-value>  
+    <th-value><![CDATA[[Let Down]]]></th-value>  
+    <fileName>Let Down.png</fileName>  
+    <eggIndex>2057</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[Sick]]]></key>  
+    <cn-value><![CDATA[[生病]]]></cn-value>  
+    <qq-value><![CDATA[[生病]]]></qq-value>  
+    <en-value><![CDATA[[Sick]]]></en-value>  
+    <tw-value><![CDATA[[生病]]]></tw-value>  
+    <th-value><![CDATA[[Sick]]]></th-value>  
+    <fileName>Sick.png</fileName>  
+    <eggIndex>2058</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[Worship]]]></key>  
+    <cn-value><![CDATA[[合十]]]></cn-value>  
+    <qq-value><![CDATA[[合十]]]></qq-value>  
+    <en-value><![CDATA[[Worship]]]></en-value>  
+    <tw-value><![CDATA[[合十]]]></tw-value>  
+    <th-value><![CDATA[[Worship]]]></th-value>  
+    <fileName>Worship.png</fileName>  
+    <eggIndex>2059</eggIndex> 
+  </emoji> 
+  <emoji> 
+    <key><![CDATA[[Firecracker]]]></key>  
+    <cn-value><![CDATA[[爆竹]]]></cn-value>  
+    <qq-value><![CDATA[[爆竹]]]></qq-value>  
+    <en-value><![CDATA[[Firecracker]]]></en-value>  
+    <tw-value><![CDATA[[爆竹]]]></tw-value>  
+    <th-value><![CDATA[[Firecracker]]]></th-value>  
+    <fileName>Firecracker.png</fileName>  
+    <eggIndex>2060</eggIndex> 
+  </emoji>
 </newemoji>
 </newemoji>

+ 2 - 1
wechat/static/parse_tencent_smiley.py

@@ -2,6 +2,7 @@
 # -*- coding: UTF-8 -*-
 # -*- coding: UTF-8 -*-
 
 
 import xml.etree.ElementTree as ET
 import xml.etree.ElementTree as ET
+import struct
 import os
 import os
 import json
 import json
 
 
@@ -84,4 +85,4 @@ if __name__ == "__main__":
     add(parse_unicode_smiley(), "unicode-smiley.json")
     add(parse_unicode_smiley(), "unicode-smiley.json")
 
 
     with open('tencent-smiley.json', 'w') as f:
     with open('tencent-smiley.json', 'w') as f:
-        json.dump(smileys, f)
+        json.dump(smileys, f, indent=2)

Plik diff jest za duży
+ 0 - 0
wechat/static/tencent-smiley.json


+ 4 - 4
wechat/static/wx.css

@@ -3,7 +3,7 @@ html,
 body {
 body {
   word-break: normal;
   word-break: normal;
   word-wrap: break-word;
   word-wrap: break-word;
-} 
+}
 
 
 /* for single line hack */
 /* for single line hack */
 .chatListColumn .nickName,
 .chatListColumn .nickName,
@@ -145,7 +145,7 @@ body {
   text-align: center;
   text-align: center;
 }
 }
 body {
 body {
-  position: relative;  
+  position: relative;
   padding: 20px 0;
   padding: 20px 0;
   box-sizing: border-box;
   box-sizing: border-box;
 }
 }
@@ -5234,7 +5234,7 @@ a.btnBlue:active .btnBluePanel {
 }
 }
 .you .cloud {
 .you .cloud {
   float: left;
   float: left;
-  min-width: 50px;
+  /* *min-width: 50px; */
   max-width: 300px;
   max-width: 300px;
   margin: 0 0 0 15px;
   margin: 0 0 0 15px;
 }
 }
@@ -5389,7 +5389,7 @@ a.btnBlue:active .btnBluePanel {
 }
 }
 .me .cloud {
 .me .cloud {
   float: right;
   float: right;
-  min-width: 50px;
+  /* *min-width: 50px; */
   max-width: 300px;
   max-width: 300px;
   margin: 0 15px 0 0;
   margin: 0 15px 0 0;
 }
 }

+ 2 - 1
wechat/wxgf.py

@@ -16,7 +16,8 @@ class WxgfAndroidDecoder:
             self.ws = create_connection(server)
             self.ws = create_connection(server)
 
 
     def __del__(self):
     def __del__(self):
-        self.ws.close()
+        if self.has_server():
+            self.ws.close()
 
 
     def has_server(self) -> bool:
     def has_server(self) -> bool:
         return hasattr(self, 'ws')
         return hasattr(self, 'ws')

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików