Просмотр исходного кода

fix: check if event is subscribe

lanvent 3 лет назад
Родитель
Сommit
f6d370ad29
2 измененных файлов с 12 добавлено и 7 удалено
  1. 6 3
      channel/wechatmp/active_reply.py
  2. 6 4
      channel/wechatmp/passive_reply.py

+ 6 - 3
channel/wechatmp/active_reply.py

@@ -30,9 +30,12 @@ class Query:
                         msg.event, msg.source
                     )
                 )
-                reply_text = subscribe_msg()
-                replyPost = create_reply(reply_text, msg)
-                return replyPost.render()
+                if msg.event in ["subscribe", "subscribe_scan"]:
+                    reply_text = subscribe_msg()
+                    replyPost = create_reply(reply_text, msg)
+                    return replyPost.render()
+                else:
+                    return "success"
             wechatmp_msg = WeChatMPMessage(msg, client=channel.client)
             if wechatmp_msg.ctype in [ContextType.TEXT, ContextType.IMAGE, ContextType.VOICE]:
                 from_user = wechatmp_msg.from_user_id

+ 6 - 4
channel/wechatmp/passive_reply.py

@@ -25,16 +25,18 @@ class Query:
             message = web.data() # todo crypto
             msg = parse_message(message)
             logger.debug("[wechatmp] Receive post data:\n" + message.decode("utf-8"))
-            
             if msg.type == "event":
                 logger.info(
                     "[wechatmp] Event {} from {}".format(
                         msg.event, msg.source
                     )
                 )
-                reply_text = subscribe_msg()
-                replyPost = create_reply(reply_text, msg)
-                return replyPost.render()
+                if msg.event in ["subscribe", "subscribe_scan"]:
+                    reply_text = subscribe_msg()
+                    replyPost = create_reply(reply_text, msg)
+                    return replyPost.render()
+                else:
+                    return "success"
         
             wechatmp_msg = WeChatMPMessage(msg, client=channel.client)
             if wechatmp_msg.ctype in [ContextType.TEXT, ContextType.IMAGE, ContextType.VOICE]: