Beispiel #1
0
 def _communicate(self, endpoint, payload):
     '''
     Endpoint is a string path
     Payload is a JSON object
     '''
     headers = dict()
     headers["Content-Type"] = "application/json"
     headers["User-Agent"] = "YAMCL"
     url_obj = URL(endpoint, URL.AUTH)
     server_data = [None, None]
     try:
         url_request = url_obj.url_object(JSONTools.serialize_json(payload).encode(OnlineAccount.TEXT_ENCODING), headers)
         server_data[0] = True
         try:
             server_data[1] = JSONTools.read_json(url_request.read().decode(OnlineAccount.TEXT_ENCODING))
         except ValueError:
             server_data[1] = None
     except urllib.error.HTTPError as http_error:
         server_data[0] = False
         try:
             server_data[1] = JSONTools.read_json(http_error.read().decode(OnlineAccount.TEXT_ENCODING))
         except ValueError:
             server_data[1] = None
     return server_data
Beispiel #2
0
 def download_versions(self):
     '''
     Downloads the latest versions.json from the official servers
     '''
     tmp_file_object = URL("versions/versions.json", URL.DOWNLOAD).url_object()
     self.versions_json = JSONTools.read_json(tmp_file_object.read().decode("UTF-8"))