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