Procházet zdrojové kódy

Merge pull request #587 from lanvent/dev2

fix: request qrscan when hotreload failed
zhayujie před 3 roky
rodič
revize
f805b29a8c
1 změnil soubory, kde provedl 14 přidání a 2 odebrání
  1. 14 2
      channel/wechat/wechat_channel.py

+ 14 - 2
channel/wechat/wechat_channel.py

@@ -4,6 +4,7 @@
 wechat channel
 """
 
+import os
 import itchat
 import json
 from itchat.content import *
@@ -50,9 +51,20 @@ class WechatChannel(Channel):
         pass
 
     def startup(self):
-        # login by scan QRCode
-        itchat.auto_login(enableCmdQR=2, hotReload=conf().get('hot_reload', False))
 
+        itchat.instance.receivingRetryCount = 600 # 修改断线超时时间
+        # login by scan QRCode
+        hotReload = conf().get('hot_reload', False)
+        try:
+            itchat.auto_login(enableCmdQR=2, hotReload=hotReload)
+        except Exception as e:
+            if hotReload:
+                logger.error("Hot reload failed, try to login without hot reload")
+                itchat.logout()
+                os.remove("itchat.pkl")
+                itchat.auto_login(enableCmdQR=2, hotReload=hotReload)
+            else:
+                raise e
         # start message listener
         itchat.run()