Small listening fixes
- If an error is raised in fetch_sequence_id, don't swallow it!
This commit is contained in:
@@ -111,7 +111,7 @@ from ._events import (
|
||||
FriendRequest,
|
||||
Presence,
|
||||
)
|
||||
from ._mqtt import Listener
|
||||
from ._listen import Listener
|
||||
|
||||
from ._client import Client
|
||||
|
||||
|
@@ -153,9 +153,7 @@ class Listener:
|
||||
" events may have been lost"
|
||||
)
|
||||
self._sync_token = None
|
||||
self._sequence_id = fetch_sequence_id(self.session)
|
||||
self._messenger_queue_publish()
|
||||
# TODO: Signal to the user that they should reload their data!
|
||||
self._sequence_id = None
|
||||
return False
|
||||
log.error("MQTT error code %s received", error)
|
||||
return False
|
||||
@@ -312,7 +310,7 @@ class Listener:
|
||||
>>> for event in listener.listen():
|
||||
... print(event)
|
||||
"""
|
||||
if not self._sequence_id:
|
||||
if self._sequence_id is None:
|
||||
self._sequence_id = fetch_sequence_id(self.session)
|
||||
|
||||
# Make sure we're connected
|
||||
@@ -326,6 +324,12 @@ class Listener:
|
||||
while True:
|
||||
rc = self._mqtt.loop(timeout=1.0)
|
||||
|
||||
# The sequence ID was reset in _handle_ms
|
||||
# TODO: Signal to the user that they should reload their data!
|
||||
if self._sequence_id is None:
|
||||
self._sequence_id = fetch_sequence_id(self.session)
|
||||
self._messenger_queue_publish()
|
||||
|
||||
# If disconnect() has been called
|
||||
# Beware, internal API, may have to change this to something more stable!
|
||||
if self._mqtt._state == paho.mqtt.client.mqtt_cs_disconnecting:
|
||||
@@ -349,7 +353,7 @@ class Listener:
|
||||
|
||||
if self._tmp_events:
|
||||
yield from self._tmp_events
|
||||
self._tmp_events = None
|
||||
self._tmp_events = []
|
||||
|
||||
def disconnect(self) -> None:
|
||||
"""Disconnect the MQTT listener.
|
Reference in New Issue
Block a user