12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # Copyright (c) 2017 Ultimaker B.V.
- # Cura is released under the terms of the LGPLv3 or higher.
- from UM.Job import Job
- from UM.Logger import Logger
- from UM.Platform import Platform
- import ssl
- import urllib.request
- import urllib.error
- import certifi
- class SliceInfoJob(Job):
- def __init__(self, url, data):
- super().__init__()
- self._url = url
- self._data = data
- def run(self):
- if not self._url or not self._data:
- Logger.log("e", "URL or DATA for sending slice info was not set!")
- return
- # CURA-6698 Create an SSL context and use certifi CA certificates for verification.
- context = ssl.SSLContext(protocol = ssl.PROTOCOL_TLSv1_2)
- context.load_verify_locations(cafile = certifi.where())
- # Submit data
- kwoptions = {"data": self._data,
- "timeout": 5,
- "context": context}
- Logger.log("i", "Sending anonymous slice info to [%s]...", self._url)
- try:
- f = urllib.request.urlopen(self._url, **kwoptions)
- Logger.log("i", "Sent anonymous slice info.")
- f.close()
- except urllib.error.HTTPError:
- Logger.logException("e", "An HTTP error occurred while trying to send slice information")
- except Exception: # We don't want any exception to cause problems
- Logger.logException("e", "An exception occurred while trying to send slice information")
|