wechaty-puppet-padplus
wechaty-puppet-padplus copied to clipboard
`bot.logout()` 多次触发 stop 、start事件
1. Versions
-
What is your wechaty version? Answer: "@juzi/wechaty": "1.0.47"
-
What is your wechaty-puppet-padplus version? Answer: "@juzi/wechaty-puppet-padplus": "1.2.4",
-
What is your node version? (run
node --version) Answer: v16.17.0 -
What os are you using Answer: Mac Os
2. Describe the bug
在微信App中点击退出登录,或者在代码中调用 bot.logout() ,均会多次触发 stop ,onStop , 接着会触发 start , onStart
3. To Reproduce
- 在微信App中点击退出登录 / 代码中调用
bot.logout() - 自动触发弹窗扫码
4. Expected behavior
在用户点击退出登录后/ 或者在代码中调用 bot.logout() 很有可能说明
- 可能想换一个token来托管这个号
- 这个号不再作为机器人进行管理
这种情况应当要做到不弹窗,突然过了1秒钟左右又给我弹出来要我重新登录,好像是个bug
这可能是一个正常的逻辑,但是如果使用了 stop后,则不应该发生后续的事件
在stop后应该不进行登录的任何操作,也不要触发 onScan 事件
5. Actual behavior
多次触发
stop
start
6. Full Output Logs
Show Logs
18:03:35 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:35 SILL GRPC_GATEWAY responseType: ACCOUNT_LOGOUT, data : {"code":200,"logoutCode":-2023,"uin":1103245599,"message":"你已退出微信","mqType":1100}
18:03:35 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:35 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:03:35 VERB Watchdog <Puppet> feed({"data":""})
18:03:35 VERB Watchdog <Puppet> timerLeft() = 33040
18:03:35 VERB Watchdog <Puppet> stopTimer()
18:03:35 VERB Watchdog <Puppet> startTimer()
18:03:35 INFO PuppetPadplus logout(你已退出微信, true)
18:03:35 VERB PuppetLoginMixin logout(你已退出微信)
18:03:35 SILL PuppetLoginMixin get currentUserId()
18:03:35 SILL StateSwitch <WechatyReady> inactive() is false
18:03:35 VERB StateSwitch <WechatyReady> inactive(true) <- (false)
18:03:35 SILL Contact find({"id":"wxid_00j4zrd47usu12"})
18:03:35 SILL PuppetLoginMixin get currentUserId()
18:03:35 SILL Contact ready() @ Puppet<PuppetPadplus>(./remember-me/puppet_padplus_803f4f5edcc8f6a7) with id="wxid_00j4zrd47usu12"
18:03:35 SILL Contact ready() isReady() true
18:03:35 SILL PuppetLoginMixin get currentUserId()
18:03:35 INFO -- logout, reason: 你已退出微信
你已退出微信
18:03:35 VERB ContactSelf name()
18:03:35 INFO PuppetPadplus stop()
18:03:35 INFO PuppetPadplus logout(logout in wechaty, true)
18:03:35 VERB PuppetLoginMixin logout(logout in wechaty)
18:03:35 VERB PuppetLoginMixin logout() isLoggedIn === false, do nothing
18:03:35 SILL PadplusManager stop()
18:03:35 SILL GRPC_GATEWAY stop()
18:03:35 SILL GRPC_GATEWAY GRPC Request ApiType: CLOSE
18:03:35 SILL GRPC_GATEWAY GRPC Request ApiType: CLOSE catch error.
18:03:40 VERB CacheManager release()
18:03:40 VERB CacheManager releaseCache()
18:03:40 SILL CacheManager releaseCache() closing caches ...
18:03:40 SILL CacheManager releaseCache() cache closed.
18:03:40 VERB PadplusManager stop() finished
18:03:40 INFO PuppetPadplus stop() stopped
18:03:40 INFO PuppetPadplus onStart()
18:03:40 VERB PadplusManager on(scan, function) registered
18:03:40 VERB PadplusManager on(login, function) registered
18:03:40 VERB PadplusManager on(message, function) registered
18:03:40 VERB PadplusManager on(ready, function) registered
18:03:40 VERB PadplusManager on(reset, function) registered
18:03:40 VERB PadplusManager on(heartbeat, function) registered
18:03:40 VERB PadplusManager on(logout, function) registered
18:03:40 VERB PadplusManager on(room-leave, function) registered
18:03:40 VERB PadplusManager on(error, function) registered
18:03:40 SILL PadplusManager start()
18:03:40 SILL GRPC_GATEWAY init()
18:03:40 SILL GRPC_GATEWAY initSelf()
18:03:40 SILL GRPC_GATEWAY initGrpcGateway()
18:03:40 VERB MemoryCard <puppet> get(WECHATY_PUPPET_PADPLUS)
18:03:40 SILL PadplusUser initInstance()
18:03:40 SILL RequestClient request()
18:03:40 SILL DedupeApi dedupe() no need to dedupe api INIT.
18:03:40 SILL GRPC_GATEWAY GRPC Request ApiType: INIT
18:03:41 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:41 SILL GRPC_GATEWAY responseType: AUTO_LOGIN, data : {"uin":1103245599,"online":false}
18:03:41 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:41 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:03:41 VERB Watchdog <Puppet> feed({"data":""})
18:03:41 VERB Watchdog <Puppet> timerLeft() = 54019
18:03:41 VERB Watchdog <Puppet> stopTimer()
18:03:41 VERB Watchdog <Puppet> startTimer()
18:03:41 SILL PadplusManager user name : { uin: 1103245599, online: false }
18:03:41 VERB MemoryCard <puppet> get(WECHATY_PUPPET_PADPLUS)
18:03:41 SILL RequestClient request()
18:03:41 SILL DedupeApi dedupe() no need to dedupe api GET_QRCODE.
18:03:41 SILL GRPC_GATEWAY GRPC Request ApiType: GET_QRCODE
18:03:41 SILL PadplusUser init success
18:03:41 VERB MemoryCard <puppet> get(WECHATY_PUPPET_PADPLUS)
18:03:41 SILL PadplusUser Get qrcode with user info, res : null
18:03:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:42 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:03:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:42 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:03:42 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:03:42 SILL StateSwitch <WechatyReady> inactive() is true
18:03:42 VERB StateSwitch <WechatyReady> inactive(true) <- (true)
18:03:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:57 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:03:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:03:57 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:03:57 VERB Watchdog <Puppet> feed({"data":""})
18:03:57 VERB Watchdog <Puppet> timerLeft() = 43738
18:03:57 VERB Watchdog <Puppet> stopTimer()
18:03:57 VERB Watchdog <Puppet> startTimer()
18:03:57 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:03:57 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:04:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:12 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:04:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:12 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:04:12 VERB Watchdog <Puppet> feed({"data":""})
18:04:12 VERB Watchdog <Puppet> timerLeft() = 44979
18:04:12 VERB Watchdog <Puppet> stopTimer()
18:04:12 VERB Watchdog <Puppet> startTimer()
18:04:12 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:04:12 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:04:27 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:27 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:04:27 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:27 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:04:27 VERB Watchdog <Puppet> feed({"data":""})
18:04:27 VERB Watchdog <Puppet> timerLeft() = 44985
18:04:27 VERB Watchdog <Puppet> stopTimer()
18:04:27 VERB Watchdog <Puppet> startTimer()
18:04:27 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:04:27 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:04:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:42 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:04:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:42 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:04:42 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:04:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:57 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:04:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:04:57 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:04:57 VERB Watchdog <Puppet> feed({"data":""})
18:04:57 VERB Watchdog <Puppet> timerLeft() = 30050
18:04:57 VERB Watchdog <Puppet> stopTimer()
18:04:57 VERB Watchdog <Puppet> startTimer()
18:04:57 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:04:57 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:05:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:12 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:05:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:12 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:05:12 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:05:27 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:27 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:05:27 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:27 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:05:27 VERB Watchdog <Puppet> feed({"data":""})
18:05:27 VERB Watchdog <Puppet> timerLeft() = 29937
18:05:27 VERB Watchdog <Puppet> stopTimer()
18:05:27 VERB Watchdog <Puppet> startTimer()
18:05:27 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:05:27 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:05:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:42 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:05:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:42 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:05:42 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:05:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:57 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:05:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:05:57 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:05:57 VERB Watchdog <Puppet> feed({"data":""})
18:05:57 VERB Watchdog <Puppet> timerLeft() = 30068
18:05:57 VERB Watchdog <Puppet> stopTimer()
18:05:57 VERB Watchdog <Puppet> startTimer()
18:05:57 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:05:57 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:06:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:12 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:06:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:12 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:06:12 VERB Watchdog <Puppet> feed({"data":""})
18:06:12 VERB Watchdog <Puppet> timerLeft() = 44955
18:06:12 VERB Watchdog <Puppet> stopTimer()
18:06:12 VERB Watchdog <Puppet> startTimer()
18:06:12 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:06:12 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:06:27 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:27 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:06:27 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:27 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:06:27 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:06:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:42 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:06:42 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:42 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:06:42 VERB Watchdog <Puppet> feed({"data":""})
18:06:42 VERB Watchdog <Puppet> timerLeft() = 30030
18:06:42 VERB Watchdog <Puppet> stopTimer()
18:06:42 VERB Watchdog <Puppet> startTimer()
18:06:42 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:06:42 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:06:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:57 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}
18:06:57 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:06:57 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":1}'
18:06:57 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
18:07:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:07:12 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"yuwei","qrcodeId":"d0e7ee8cbf8b0651a9829420c8527c59","status":3}
18:07:12 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
18:07:12 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:07:12 VERB Watchdog <Puppet> feed({"data":""})
18:07:12 VERB Watchdog <Puppet> timerLeft() = 29984
18:07:12 VERB Watchdog <Puppet> stopTimer()
18:07:12 VERB Watchdog <Puppet> startTimer()
18:07:42 SILL GRPC_GATEWAY keepHeartbeat()
18:07:42 SILL GRPC_GATEWAY GRPC Request ApiType: HEARTBEAT
18:07:42 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
18:07:42 VERB Watchdog <Puppet> feed({"data":"09fac256-cd69-4724-8ee7-b7eb3cd5634e"})
18:07:42 VERB Watchdog <Puppet> timerLeft() = 29950
18:07:42 VERB Watchdog <Puppet> stopTimer()
18:07:42 VERB Watchdog <Puppet> startTimer()
7. Additional context
微信app上点击退出登录, 在控制台触发了 Scanned, 并且在app 端触发了 登录的弹出
10:22:50 SILL GRPC_GATEWAY keepHeartbeat()
10:22:50 SILL GRPC_GATEWAY GRPC Request ApiType: HEARTBEAT
10:22:51 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
10:22:51 VERB Watchdog <Puppet> feed({"data":"0029355f-079f-420b-9141-a1cff202a568"})
10:22:51 VERB Watchdog <Puppet> timerLeft() = 19974
10:22:51 VERB Watchdog <Puppet> stopTimer()
10:22:51 VERB Watchdog <Puppet> startTimer()
10:22:51 SILL PadplusManager setContactAndRoomData()
10:22:51 SILL PadplusManager setContactAndRoomData() found contact, room, friend data no change.
10:22:55 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
10:22:55 SILL GRPC_GATEWAY responseType: ACCOUNT_LOGOUT, data : {"code":200,"logoutCode":-2023,"uin":1103245599,"message":"你已退出微信","mqType":1100}
10:22:55 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
10:22:55 INFO PuppetPadplus logout(你已退出微信, true)
10:22:55 VERB PuppetLoginMixin logout(你已退出微信)
10:22:55 SILL PuppetLoginMixin get currentUserId()
10:22:55 SILL StateSwitch <WechatyReady> inactive() is true
10:22:55 VERB StateSwitch <WechatyReady> inactive(true) <- (true)
10:22:55 SILL Contact find({"id":"wxid_00j4zrd47usu12"})
10:22:55 SILL PuppetLoginMixin get currentUserId()
10:22:55 SILL Contact ready() @ Puppet<PuppetPadplus>(./remember-me/puppet_padplus_2c0c20b837d7df31) with id="wxid_00j4zrd47usu12"
10:22:55 SILL Contact ready() isReady() true
10:22:55 SILL PuppetLoginMixin get currentUserId()
10:22:55 INFO -- logout, reason: 你已退出微信
你已退出微信
退出了登录
退出了登录
10:22:57 VERB ContactSelf name()
10:22:57 INFO PuppetPadplus stop()
10:22:57 INFO PuppetPadplus logout(logout in wechaty, true)
10:22:57 VERB PuppetLoginMixin logout(logout in wechaty)
10:22:57 VERB PuppetLoginMixin logout() isLoggedIn === false, do nothing
10:22:57 SILL PadplusManager stop()
10:22:57 SILL GRPC_GATEWAY stop()
10:22:57 SILL GRPC_GATEWAY GRPC Request ApiType: CLOSE
10:22:57 SILL GRPC_GATEWAY GRPC Request ApiType: CLOSE catch error.
[2023-03-31T10:22:57.679+08:00] [WARN] [5040] [] [wuyuweideMacBook-Pro.local] [172.21.144.49] [wechaty-robot] [] [] [] [] [Sequelize [
"Executing (default): SELECT `wxid`, `token`, `createdAt`, `updatedAt` FROM `robot` AS `robot` WHERE `robot`.`wxid` = 'wxid_00j4zrd47usu12';",
{
plain: true,
raw: false,
logging: [Function: logging],
showWarnings: false,
where: "`robot`.`wxid` = 'wxid_00j4zrd47usu12'",
hooks: true,
rejectOnEmpty: false,
originalAttributes: [ 'wxid', 'token', 'createdAt', 'updatedAt' ],
attributes: [ 'wxid', 'token', 'createdAt', 'updatedAt' ],
tableNames: [ 'robot' ],
type: 'SELECT',
model: robot
}
]] ## ''
[2023-03-31T10:22:57.713+08:00] [WARN] [5040] [] [wuyuweideMacBook-Pro.local] [172.21.144.49] [wechaty-robot] [] [] [] [] [Sequelize [
"Executing (default): DELETE FROM `robot` WHERE `wxid` = 'wxid_00j4zrd47usu12'",
{
plain: false,
raw: false,
logging: [Function: logging],
showWarnings: false,
where: { wxid: 'wxid_00j4zrd47usu12' },
hooks: true,
individualHooks: false,
force: false,
cascade: false,
restartIdentity: false,
type: 'BULKDELETE',
model: robot,
limit: null
}
]] ## ''
10:23:02 VERB CacheManager release()
10:23:02 VERB CacheManager releaseCache()
10:23:02 SILL CacheManager releaseCache() closing caches ...
10:23:02 SILL CacheManager releaseCache() cache closed.
10:23:02 VERB PadplusManager stop() finished
10:23:02 INFO PuppetPadplus stop() stopped
10:23:02 INFO PuppetPadplus onStart()
10:23:02 VERB PadplusManager on(scan, function) registered
10:23:02 VERB PadplusManager on(login, function) registered
10:23:02 VERB PadplusManager on(message, function) registered
10:23:02 VERB PadplusManager on(ready, function) registered
10:23:02 VERB PadplusManager on(reset, function) registered
10:23:02 VERB PadplusManager on(heartbeat, function) registered
10:23:02 VERB PadplusManager on(logout, function) registered
10:23:02 VERB PadplusManager on(room-leave, function) registered
10:23:02 VERB PadplusManager on(error, function) registered
10:23:02 SILL PadplusManager start()
10:23:02 SILL GRPC_GATEWAY init()
10:23:02 SILL GRPC_GATEWAY initSelf()
10:23:02 SILL GRPC_GATEWAY initGrpcGateway()
10:23:02 VERB MemoryCard <puppet> get(WECHATY_PUPPET_PADPLUS)
10:23:03 SILL PadplusUser initInstance()
10:23:03 SILL RequestClient request()
10:23:03 SILL DedupeApi dedupe() no need to dedupe api INIT.
10:23:03 SILL GRPC_GATEWAY GRPC Request ApiType: INIT
10:23:03 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
10:23:03 SILL GRPC_GATEWAY responseType: AUTO_LOGIN, data : {"uin":1103245599,"online":false}
10:23:03 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
10:23:03 SILL GRPC_GATEWAY throttleQueue emit heartbeat.
10:23:03 VERB Watchdog <Puppet> feed({"data":""})
10:23:03 VERB Watchdog <Puppet> timerLeft() = 47693
10:23:03 VERB Watchdog <Puppet> stopTimer()
10:23:03 VERB Watchdog <Puppet> startTimer()
10:23:03 SILL PadplusManager setContactAndRoomData()
10:23:03 VERB PadplusManager setContactAndRoomData() can not proceed due to no cache.
10:23:03 SILL PadplusManager user name : { uin: 1103245599, online: false }
10:23:03 VERB MemoryCard <puppet> get(WECHATY_PUPPET_PADPLUS)
10:23:03 SILL RequestClient request()
10:23:03 SILL DedupeApi dedupe() no need to dedupe api GET_QRCODE.
10:23:03 SILL GRPC_GATEWAY GRPC Request ApiType: GET_QRCODE
10:23:03 SILL PadplusUser init success
10:23:03 VERB MemoryCard <puppet> get(WECHATY_PUPPET_PADPLUS)
10:23:03 SILL PadplusUser Get qrcode with user info, res : null
10:23:05 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
10:23:05 SILL GRPC_GATEWAY responseType: QRCODE_SCAN, data : {"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"鱼尾","qrcodeId":"7b365850c37c5663b88d2614dfc6956b","status":1}
10:23:05 SILL ==P==A==D==P==L==U==S==<GRPC DATA>==P==A==D==P==L==U==S==
10:23:05 SILL PadplusManager QRCODE_SCAN : '{"msg":"操作成功","head_url":"http://wx.qlogo.cn/mmhead/ver_1/OxllzjTf55qDecZiaNaEyvjReD39I6CyKTkxic3kp568b4F4CZo0XGrdX8onvbhFA3ibTicXBJ8ItibSdxXz3iaxSs9teVxdqNz2h3Z6Z4lEaHtlk/0","user_name":"","nick_name":"鱼尾","qrcodeId":"7b365850c37c5663b88d2614dfc6956b","status":1}'
10:23:05 VERB PadplusManager
=================================================
QRCODE_SCAN MSG : Scanned
=================================================
10:23:05 SILL StateSwitch <WechatyReady> inactive() is true
10:23:05 VERB StateSwitch <WechatyReady> inactive(true) <- (true)