From 05fd1e08cfb277b1ea13bfca47fbb56dca156032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vil=C3=A9m=20Duha?= Date: Sat, 5 Dec 2020 18:26:05 +0100 Subject: BlenderKit: resolutions This introduces resolutins into the addon. This update should enhance the usability of the addon, especially for people with weaker computers. It downloads reduced version of the assets - only images are scaled down by now. Images are also converted in some cases from .png to .jpgs to save space. - there's a default resolution setting - resolutions can be swapped by user - resolutions apply only to textured models and materials with textures larger than 1024px - Resolutions aren't yet generated on the server, so will be visible after a few days. Version of the addon was bumped up to 1.0.40. --- blenderkit/upload.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) (limited to 'blenderkit/upload.py') diff --git a/blenderkit/upload.py b/blenderkit/upload.py index cd72fda7..c789313d 100644 --- a/blenderkit/upload.py +++ b/blenderkit/upload.py @@ -608,11 +608,11 @@ def start_upload(self, context, asset_type, reupload, upload_set): try: if 'MAINFILE' in upload_set: json_metadata["verificationStatus"] = "uploading" - r = rerequests.put(url, json=json_metadata, headers=headers, verify=True, immediate=True) # files = files, + r = rerequests.patch(url, json=json_metadata, headers=headers, verify=True, immediate=True) # files = files, ui.add_report('uploaded metadata') # parse the request # print('uploaded metadata') - # print(r.text) + print(r.text) except requests.exceptions.RequestException as e: print(e) props.upload_state = str(e) @@ -786,6 +786,51 @@ class UploadOperator(Operator): return self.execute(context) + +class AssetDebugPrint(Operator): + """Change verification status""" + bl_idname = "object.blenderkit_print_asset_debug" + bl_description = "BlenderKit print asset data for debug purposes" + bl_label = "BlenderKit print asset data" + bl_options = {'REGISTER', 'UNDO', 'INTERNAL'} + + # type of upload - model, material, textures, e.t.c. + asset_id: StringProperty( + name="asset id", + ) + + @classmethod + def poll(cls, context): + return True + + + def execute(self, context): + preferences = bpy.context.preferences.addons['blenderkit'].preferences + + if not bpy.context.scene['search results']: + print('no search results found') + return {'CANCELLED'}; + # update status in search results for validator's clarity + sr = bpy.context.scene['search results'] + sro = bpy.context.scene['search results orig']['results'] + + result = None + for r in sr: + if r['id'] == self.asset_id: + result = r.to_dict() + if not result: + for r in sro: + if r['id'] == self.asset_id: + result = r.to_dict() + if not result: + ad = bpy.context.active_object.get('asset_data') + if ad: + result = ad.to_dict() + if result: + print(json.dumps(result, indent=4, sort_keys=True)) + return {'FINISHED'} + + class AssetVerificationStatusChange(Operator): """Change verification status""" bl_idname = "object.blenderkit_change_status" @@ -845,9 +890,11 @@ class AssetVerificationStatusChange(Operator): def register_upload(): bpy.utils.register_class(UploadOperator) + bpy.utils.register_class(AssetDebugPrint) bpy.utils.register_class(AssetVerificationStatusChange) def unregister_upload(): bpy.utils.unregister_class(UploadOperator) + bpy.utils.unregister_class(AssetDebugPrint) bpy.utils.unregister_class(AssetVerificationStatusChange) -- cgit v1.2.3