feat(login): emit login and online status events
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user