ソースを参照

fix: wechatmp event and query timeout

master
lanvent 1年前
コミット
3a3affd3ec
2個のファイルの変更6行の追加6行の削除
  1. +4
    -4
      channel/wechatmp/receive.py
  2. +2
    -2
      channel/wechatmp/wechatmp_channel.py

+ 4
- 4
channel/wechatmp/receive.py ファイルの表示

@@ -19,10 +19,10 @@ class WeChatMPMessage(ChatMessage):
self.from_user_id = xmlData.find('FromUserName').text
self.create_time = xmlData.find('CreateTime').text
self.msg_type = xmlData.find('MsgType').text
if self.msg_type != 'event':
try:
self.msg_id = xmlData.find('MsgId').text
else:
self.msg_id = self.create_time
except:
self.msg_id = self.from_user_id+self.create_time
self.is_group = False
# reply to other_user_id
@@ -39,7 +39,7 @@ class WeChatMPMessage(ChatMessage):
self.pic_url = xmlData.find('PicUrl').text
self.media_id = xmlData.find('MediaId').text
elif self.msg_type == 'event':
self.event = xmlData.find('Event').text
self.content = xmlData.find('Event').text
else: # video, shortvideo, location, link
# not implemented
pass

+ 2
- 2
channel/wechatmp/wechatmp_channel.py ファイルの表示

@@ -150,7 +150,7 @@ class SubsribeAccountQuery():
channel.query2[cache_key] = False
channel.query3[cache_key] = False
# Request again
elif cache_key in channel.running:
elif cache_key in channel.running and channel.query1.get(cache_key) == True and channel.query2.get(cache_key) == True and channel.query3.get(cache_key) == True:
channel.query1[cache_key] = False #To improve waiting experience, this can be set to True.
channel.query2[cache_key] = False #To improve waiting experience, this can be set to True.
channel.query3[cache_key] = False
@@ -231,7 +231,7 @@ class SubsribeAccountQuery():
return replyPost

elif wechat_msg.msg_type == 'event':
logger.info("[wechatmp] Event {} from {}".format(wechat_msg.Event, wechat_msg.from_user_id))
logger.info("[wechatmp] Event {} from {}".format(wechat_msg.content, wechat_msg.from_user_id))
trigger_prefix = conf().get('single_chat_prefix',[''])[0]
content = textwrap.dedent(f"""\
感谢您的关注!


読み込み中…
キャンセル
保存