diff --git a/channel/wechat/wechat_channel.py b/channel/wechat/wechat_channel.py index 2afccf1..f1ff5d3 100644 --- a/channel/wechat/wechat_channel.py +++ b/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()