mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-15 10:47:49 -06:00
CURA-1445: Sending bundle of serialized data
After an discussion with the developers at YM, we decided to send all data in one keyword. So now all data is bundled into a JSON dictionary, where "" is the global_container_stack and it's containers go into the same JSON, too, by using their IDs as keywords. More on JIRA... Contributes to CURA-1445 Includes/Fixes #1013
This commit is contained in:
parent
1cda5ae163
commit
db6702fbbc
1 changed files with 16 additions and 14 deletions
|
@ -21,6 +21,7 @@ import urllib.request
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
import ssl
|
import ssl
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import json
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
@ -105,18 +106,7 @@ class SliceInfo(Extension):
|
||||||
material_used = [str(math.pi * material_radius * material_radius * material_length) for material_length in print_information.materialLengths]
|
material_used = [str(math.pi * material_radius * material_radius * material_length) for material_length in print_information.materialLengths]
|
||||||
material_used = ",".join(material_used)
|
material_used = ",".join(material_used)
|
||||||
|
|
||||||
# Bundle the collected data
|
containers = { "": global_container_stack.serialize() }
|
||||||
submitted_data = {
|
|
||||||
"processor": platform.processor(),
|
|
||||||
"machine": platform.machine(),
|
|
||||||
"platform": platform.platform(),
|
|
||||||
"settings": global_container_stack.serialize(), # global_container with references on used containers
|
|
||||||
"version": Application.getInstance().getVersion(),
|
|
||||||
"modelhash": modelhash_formatted,
|
|
||||||
"printtime": print_information.currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601),
|
|
||||||
"filament": material_used,
|
|
||||||
"language": Preferences.getInstance().getValue("general/language"),
|
|
||||||
}
|
|
||||||
for container in global_container_stack.getContainers():
|
for container in global_container_stack.getContainers():
|
||||||
container_id = container.getId()
|
container_id = container.getId()
|
||||||
container_serialized = ""
|
container_serialized = ""
|
||||||
|
@ -125,12 +115,24 @@ class SliceInfo(Extension):
|
||||||
except NotImplementedError:
|
except NotImplementedError:
|
||||||
Logger.log("w", "Container %s could not be serialized!", container_id)
|
Logger.log("w", "Container %s could not be serialized!", container_id)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if container_serialized:
|
if container_serialized:
|
||||||
submitted_data["settings_%s" %(container_id)] = container_serialized # This can be anything, eg. INI, JSON, etc.
|
containers[container_id] = container_serialized
|
||||||
else:
|
else:
|
||||||
Logger.log("i", "No data found in %s to be serialized!", container_id)
|
Logger.log("i", "No data found in %s to be serialized!", container_id)
|
||||||
|
|
||||||
|
# Bundle the collected data
|
||||||
|
submitted_data = {
|
||||||
|
"processor": platform.processor(),
|
||||||
|
"machine": platform.machine(),
|
||||||
|
"platform": platform.platform(),
|
||||||
|
"settings": json.dumps(containers), # global_container with references on used containers
|
||||||
|
"version": Application.getInstance().getVersion(),
|
||||||
|
"modelhash": modelhash_formatted,
|
||||||
|
"printtime": print_information.currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601),
|
||||||
|
"filament": material_used,
|
||||||
|
"language": Preferences.getInstance().getValue("general/language"),
|
||||||
|
}
|
||||||
|
|
||||||
# Convert data to bytes
|
# Convert data to bytes
|
||||||
submitted_data = urllib.parse.urlencode(submitted_data)
|
submitted_data = urllib.parse.urlencode(submitted_data)
|
||||||
binary_data = submitted_data.encode("utf-8")
|
binary_data = submitted_data.encode("utf-8")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue