mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-06-02 00:57:41 +08:00
fix(itchat): add error log when hot reload fails and log out before logging in normally
This commit is contained in:
@@ -113,21 +113,12 @@ class WechatChannel(ChatChannel):
|
|||||||
# login by scan QRCode
|
# login by scan QRCode
|
||||||
hotReload = conf().get("hot_reload", False)
|
hotReload = conf().get("hot_reload", False)
|
||||||
status_path = os.path.join(get_appdata_dir(), "itchat.pkl")
|
status_path = os.path.join(get_appdata_dir(), "itchat.pkl")
|
||||||
try:
|
itchat.auto_login(
|
||||||
itchat.auto_login(
|
enableCmdQR=2,
|
||||||
enableCmdQR=2,
|
hotReload=hotReload,
|
||||||
hotReload=hotReload,
|
statusStorageDir=status_path,
|
||||||
statusStorageDir=status_path,
|
qrCallback=qrCallback,
|
||||||
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
|
|
||||||
self.user_id = itchat.instance.storageClass.userName
|
self.user_id = itchat.instance.storageClass.userName
|
||||||
self.name = itchat.instance.storageClass.nickName
|
self.name = itchat.instance.storageClass.nickName
|
||||||
logger.info("Wechat login success, user_id: {}, nickname: {}".format(self.user_id, self.name))
|
logger.info("Wechat login success, user_id: {}, nickname: {}".format(self.user_id, self.name))
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ def sync_check(self):
|
|||||||
regx = r'window.synccheck={retcode:"(\d+)",selector:"(\d+)"}'
|
regx = r'window.synccheck={retcode:"(\d+)",selector:"(\d+)"}'
|
||||||
pm = re.search(regx, r.text)
|
pm = re.search(regx, r.text)
|
||||||
if pm is None or pm.group(1) != '0':
|
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 None
|
||||||
return pm.group(2)
|
return pm.group(2)
|
||||||
|
|
||||||
|
|||||||
@@ -25,9 +25,11 @@ def auto_login(self, hotReload=False, statusStorageDir='itchat.pkl',
|
|||||||
self.useHotReload = hotReload
|
self.useHotReload = hotReload
|
||||||
self.hotReloadDir = statusStorageDir
|
self.hotReloadDir = statusStorageDir
|
||||||
if hotReload:
|
if hotReload:
|
||||||
if self.load_login_status(statusStorageDir,
|
if rval:=self.load_login_status(statusStorageDir,
|
||||||
loginCallback=loginCallback, exitCallback=exitCallback):
|
loginCallback=loginCallback, exitCallback=exitCallback):
|
||||||
return
|
return
|
||||||
|
logger.error('hot reload failed, logging in normally, {}'.format(rval))
|
||||||
|
self.logout()
|
||||||
self.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback,
|
self.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback,
|
||||||
loginCallback=loginCallback, exitCallback=exitCallback)
|
loginCallback=loginCallback, exitCallback=exitCallback)
|
||||||
self.dump_login_status(statusStorageDir)
|
self.dump_login_status(statusStorageDir)
|
||||||
|
|||||||
Reference in New Issue
Block a user