feat(login): emit login and online status events

This commit is contained in:
2026-07-10 12:16:27 +08:00
parent 2f4783f1f9
commit 1d2948677e
4 changed files with 73 additions and 10 deletions

View File

@@ -90,6 +90,20 @@ class PyWeChatClient:
pass
return self.state
def set_login_status(self, status: LoginStatus, error_message: Optional[str] = None) -> None:
old = self.state.login_status
self.state.login_status = status
if status == LoginStatus.SUCCESS:
self.state.online_status = OnlineStatus.ONLINE
self.state.last_heartbeat_at = time.time()
elif status in (LoginStatus.EXPIRED, LoginStatus.FAILED):
self.state.online_status = OnlineStatus.OFFLINE
if error_message:
self.state.error_message = error_message
def set_online_status(self, status: OnlineStatus) -> None:
self.state.online_status = status
class ClientRegistry:
def __init__(self):