fix #101 by checking if the stream api uses ws:// or wss://

This commit is contained in:
codl 2017-11-22 14:14:35 +01:00
pare 1c13794760
commit c3a31930b8
No se encontró ninguna clave conocida en la base de datos para esta firma
ID de clave GPG: 6CD7C8891ED1233A

Veure arxiu

@ -1201,9 +1201,16 @@ class Mastodon:
instance = self.instance() instance = self.instance()
if "streaming_api" in instance["urls"] and instance["urls"]["streaming_api"] != self.api_base_url: if "streaming_api" in instance["urls"] and instance["urls"]["streaming_api"] != self.api_base_url:
# This is probably a websockets URL, which is really for the browser, but requests can't handle it # This is probably a websockets URL, which is really for the browser, but requests can't handle it
# So we do this below to turn it into an HTTPS URL # So we do this below to turn it into an HTTPS or HTTP URL
parse = urlparse(instance["urls"]["streaming_api"]) parse = urlparse(instance["urls"]["streaming_api"])
url = "https://" + parse.netloc if parse.scheme == 'wss':
url = "https://" + parse.netloc
elif parse.scheme == 'ws':
url = "http://" + parse.netloc
else:
raise MastodonAPIError(
"Could not parse streaming api location returned from server: {}.".format(
instance["urls"]["streaming_api"]))
else: else:
url = self.api_base_url url = self.api_base_url