diff --git a/channel/wechat/wechat_channel.py b/channel/wechat/wechat_channel.py index d8249a1..c888157 100644 --- a/channel/wechat/wechat_channel.py +++ b/channel/wechat/wechat_channel.py @@ -113,21 +113,12 @@ class WechatChannel(ChatChannel): # login by scan QRCode hotReload = conf().get("hot_reload", False) status_path = os.path.join(get_appdata_dir(), "itchat.pkl") - try: - itchat.auto_login( - enableCmdQR=2, - hotReload=hotReload, - statusStorageDir=status_path, - qrCallback=qrCallback, - ) - except Exception as e: - if hotReload: - logger.error("Hot reload failed, try to login without hot reload") - itchat.logout() - os.remove(status_path) - itchat.auto_login(enableCmdQR=2, hotReload=hotReload, qrCallback=qrCallback) - else: - raise e + itchat.auto_login( + enableCmdQR=2, + hotReload=hotReload, + statusStorageDir=status_path, + qrCallback=qrCallback, + ) self.user_id = itchat.instance.storageClass.userName self.name = itchat.instance.storageClass.nickName logger.info("Wechat login success, user_id: {}, nickname: {}".format(self.user_id, self.name)) diff --git a/lib/itchat/components/login.py b/lib/itchat/components/login.py index 3a359ee..c4d8c1c 100644 --- a/lib/itchat/components/login.py +++ b/lib/itchat/components/login.py @@ -367,7 +367,7 @@ def sync_check(self): regx = r'window.synccheck={retcode:"(\d+)",selector:"(\d+)"}' pm = re.search(regx, r.text) if pm is None or pm.group(1) != '0': - logger.debug('Unexpected sync check result: %s' % r.text) + logger.error('Unexpected sync check result: %s' % r.text) return None return pm.group(2) diff --git a/lib/itchat/components/register.py b/lib/itchat/components/register.py index 78a3f0b..368ac31 100644 --- a/lib/itchat/components/register.py +++ b/lib/itchat/components/register.py @@ -25,9 +25,11 @@ def auto_login(self, hotReload=False, statusStorageDir='itchat.pkl', self.useHotReload = hotReload self.hotReloadDir = statusStorageDir if hotReload: - if self.load_login_status(statusStorageDir, + if rval:=self.load_login_status(statusStorageDir, loginCallback=loginCallback, exitCallback=exitCallback): return + logger.error('hot reload failed, logging in normally, {}'.format(rval)) + self.logout() self.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback, loginCallback=loginCallback, exitCallback=exitCallback) self.dump_login_status(statusStorageDir)