Browse Source

Add red packet content type and fix a bug about group messages.

liuwons 9 years ago
parent
commit
e655eb30c8
3 changed files with 14 additions and 8 deletions
  1. 6 5
      README.md
  2. 3 3
      bot.py
  3. 5 0
      wxbot.py

+ 6 - 5
README.md

@@ -100,7 +100,7 @@ handle_msg_all函数的参数msg是代表一条消息的字典。字段的内容
 | 0 | 初始化消息,内部数据 | 无意义,可以忽略 |
 | 1 | 自己发送的消息 | 无意义,可以忽略 |
 | 2 | 文件消息 | 字典,包含type与data字段 |
-| 3 | 群消息 | 字典, 包含user(字典,包含id与name字段,都是字符串,表示发送此消息的群用户)与type、data字段 |
+| 3 | 群消息 | 字典, 包含user(字典,包含id与name字段,都是字符串,表示发送此消息的群用户)与type、data字段,红包消息除外(只有type字段) |
 | 4 | 联系人消息 | 字典,包含type与data字段 |
 | 5 | 公众号消息 | 字典,包含type与data字段 |
 | 6 | 特殊账号消息 | 字典,包含type与data字段 |
@@ -118,11 +118,12 @@ handle_msg_all函数的参数msg是代表一条消息的字典。字段的内容
 | 5 | 名片 | 字典,包含nickname(昵称),alias(别名),province(省份),city(城市), gender(性别)字段 |
 | 6 | 动画 | 字符串, 动画url |
 | 7 | 分享 | 字典,包含type(类型),title(标题),desc(描述),url(链接),from(来自)字段 |
-| 8 | 视频 | 字符串,未解析的xml字符串 |
-| 9 | 视频电话 | 字符串,未解析的xml字符串 |
-| 10 | 撤回消息 | 字符串,未解析的xml字符串 |
+| 8 | 视频 | 不可用 |
+| 9 | 视频电话 | 不可用 |
+| 10 | 撤回消息 | 不可用 |
 | 11 | 空内容 | 空字符串 |
-| 12 | 未知类型 | 字符串,未解析的xml字符串 |
+| 12 | 红包 | 不可用 |
+| 99 | 未知类型 | 不可用 |
 
 
 ### 4.4 WXBot对象属性

+ 3 - 3
bot.py

@@ -61,11 +61,11 @@ class TulingWXBot(WXBot):
                 if is_at_me:  # someone @ me
                     snames = self.get_group_member_name(msg['user']['id'], msg['content']['user']['id'])
                     src_name = ''
-                    if 'display_name' in snames:
+                    if 'display_name' in snames and len(snames['display_name']) > 0:
                         src_name = snames['display_name']
-                    elif 'nickname' in snames:
+                    elif 'nickname' in snames and len(snames['nickname']) > 0:
                         src_name = snames['nickname']
-                    elif 'remark_name' in snames:
+                    elif 'remark_name' in snames and len(snames['remark_name']) > 0:
                         src_name = snames['remark_name']
 
                     if src_name != '':

+ 5 - 0
wxbot.py

@@ -360,6 +360,11 @@ class WXBot:
             msg_content['data'] = content
             if self.DEBUG:
                 print '    %s[Redraw]' % msg_prefix
+        elif mtype == 10000:
+            msg_content['type'] = 12
+            msg_content['data'] = msg['Content']
+            if self.DEBUG:
+                print '    [Red Packet]'
         else:
             msg_content['type'] = 99
             msg_content['data'] = content