raise MastodonReadTimeout when a stream times out

This commit is contained in:
codl 2018-04-19 17:10:42 +02:00
pare 2afc50c803
commit 06e32c14bc
No se encontró ninguna clave conocida en la base de datos para esta firma
ID de clave GPG: 6CD7C8891ED1233A
S'han modificat 2 arxius amb 12 adicions i 3 eliminacions

Veure arxiu

@ -1872,6 +1872,10 @@ class MastodonNetworkError(MastodonIOError):
"""Raised when network communication with the server fails""" """Raised when network communication with the server fails"""
pass pass
class MastodonReadTimeout(MastodonNetworkError):
"""Raised when a stream times out"""
pass
class MastodonAPIError(MastodonError): class MastodonAPIError(MastodonError):
"""Raised when the mastodon API generates a response that cannot be handled""" """Raised when the mastodon API generates a response that cannot be handled"""

Veure arxiu

@ -6,8 +6,8 @@ https://github.com/tootsuite/mastodon/blob/master/docs/Using-the-API/Streaming-A
import json import json
import six import six
from mastodon import Mastodon from mastodon import Mastodon
from mastodon.Mastodon import MastodonMalformedEventError, MastodonNetworkError from mastodon.Mastodon import MastodonMalformedEventError, MastodonNetworkError, MastodonReadTimeout
from requests.exceptions import ChunkedEncodingError from requests.exceptions import ChunkedEncodingError, ReadTimeout
class StreamListener(object): class StreamListener(object):
"""Callbacks for the streaming API. Create a subclass, override the on_xxx """Callbacks for the streaming API. Create a subclass, override the on_xxx
@ -68,7 +68,12 @@ class StreamListener(object):
MastodonNetworkError("Server ceased communication."), MastodonNetworkError("Server ceased communication."),
err err
) )
except MastodonReadTimeout as err:
six.raise_from(
MastodonReadTimeout("Timed out while reading from server."),
err
)
def _parse_line(self, line, event): def _parse_line(self, line, event):
if line.startswith(':'): if line.startswith(':'):
self.handle_heartbeat() self.handle_heartbeat()