raise MastodonReadTimeout when a stream times out

pull/128/head
codl 2018-04-19 17:10:42 +02:00
rodzic 2afc50c803
commit 06e32c14bc
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6CD7C8891ED1233A
2 zmienionych plików z 12 dodań i 3 usunięć

Wyświetl plik

@ -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"""

Wyświetl plik

@ -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()