[Bf-extensions-cvs] [13140e39] master: BlenderKit: basic asset_browser compatibility fix default search report blender version instead of addon version during search

Vilem Duha noreply at git.blender.org
Sat Oct 2 17:33:26 CEST 2021


Commit: 13140e3947af5c1becd752e7fb2c627b3ed95d96
Author: Vilem Duha
Date:   Sat Oct 2 17:32:37 2021 +0200
Branches: master
https://developer.blender.org/rBA13140e3947af5c1becd752e7fb2c627b3ed95d96

BlenderKit: basic asset_browser compatibility
fix default search
report blender version instead of addon version during search

===================================================================

M	blenderkit/resolutions.py
M	blenderkit/search.py
M	blenderkit/ui_panels.py
M	blenderkit/version_checker.py

===================================================================

diff --git a/blenderkit/resolutions.py b/blenderkit/resolutions.py
index 1a4af5fc..e2412786 100644
--- a/blenderkit/resolutions.py
+++ b/blenderkit/resolutions.py
@@ -168,6 +168,31 @@ def unpack_asset(data):
                 # image.unpack(method='REMOVE')
                 image.unpack(method='WRITE_ORIGINAL')
 
+    #mark asset browser asset
+    data_block = None
+    if asset_data['assetType'] == 'model':
+        for ob in bpy.context.scene.objects:
+            if ob.parent == None:
+                ob.asset_mark()
+                data_block = ob
+    elif asset_data['assetType'] == 'material':
+        for m in bpy.data.materials:
+            m.asset_mark()
+            data_block = m
+    elif asset_data['assetType'] == 'scene':
+        bpy.context.scene.asset_mark()
+    elif asset_data['assetType'] =='brush':
+        for b in bpy.data.brushes:
+            if b.get('asset_data') is not None:
+                b.asset_mark()
+                data_block = b
+    if data_block is not None:
+        tags = data_block.asset_data.tags
+        for t in tags:
+            tags.remove(t)
+        tags.new('description: ' + asset_data['description'])
+        tags.new('tags: ' + ','.join(asset_data['tags']))
+        
     bpy.ops.wm.save_mainfile(compress=False)
     # now try to delete the .blend1 file
     try:
diff --git a/blenderkit/search.py b/blenderkit/search.py
index c386f588..e846e8bc 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -1313,6 +1313,15 @@ def get_search_simple(parameters, filepath=None, page_size=100, max_results=1000
     bk_logger.info(f'retrieved {len(results)} assets from elastic search')
     return results
 
+def get_single_asset(asset_base_id):
+    preferences = bpy.context.preferences.addons['blenderkit'].preferences
+    params = {
+        'asset_base_id': asset_base_id
+    }
+    results = get_search_simple(params, api_key=preferences.api_key)
+    if len(results)>0:
+        return results[0]
+    return None
 
 def search(category='', get_next=False, author_id=''):
     ''' initialize searching'''
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index 25fa5927..f65833ed 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -1175,23 +1175,32 @@ class BlenderKitWelcomeOperator(bpy.types.Operator):
             # bpy.context.window_manager.windows[0].screen.areas[5].spaces[0].show_region_ui = False
             print('running search no')
             ui_props = bpy.context.scene.blenderkitUI
-            random_searches = [
-                ('MATERIAL', 'ice'),
-                ('MODEL', 'car'),
-                ('MODEL', 'vase'),
-                ('MODEL', 'grass'),
-                ('MODEL', 'plant'),
-                ('MODEL', 'man'),
-                ('MATERIAL', 'metal'),
-                ('MATERIAL', 'wood'),
-                ('MATERIAL', 'floor'),
-                ('MATERIAL', 'bricks'),
-            ]
-            random_search = random.choice(random_searches)
-            ui_props.asset_type = random_search[0]
-
-            bpy.context.window_manager.blenderkit_mat.search_keywords = ''  # random_search[1]
-            bpy.context.window_manager.blenderkit_mat.search_keywords = '+is_free:true+score_gte:1000+order:-created'  # random_search[1]
+            # random_searches = [
+            #     ('MATERIAL', 'ice'),
+            #     ('MODEL', 'car'),
+            #     ('MODEL', 'vase'),
+            #     ('MODEL', 'grass'),
+            #     ('MODEL', 'plant'),
+            #     ('MODEL', 'man'),
+            #     ('MATERIAL', 'metal'),
+            #     ('MATERIAL', 'wood'),
+            #     ('MATERIAL', 'floor'),
+            #     ('MATERIAL', 'bricks'),
+            # ]
+            # random_search = random.choice(random_searches)
+            # ui_props.asset_type = random_search[0]
+            ui_props.asset_type = 'MODEL'
+
+            score_limit = 450
+            if ui_props.asset_type == 'MATERIAL':
+                props = bpy.context.window_manager.blenderkit_mat
+
+            elif ui_props.asset_type == 'MODEL':
+                props = bpy.context.window_manager.blenderkit_models
+                score_limit = 1000
+
+            props.search_keywords = ''#random_search[1]
+            props.search_keywords += f'+is_free:true+score_gte:{score_limit}+order:-created'  # random_search[1]
             # search.search()
         return {'FINISHED'}
 
@@ -1655,8 +1664,9 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
         # self.draw_asset_parameter(box, key='purePbr', pretext='Pure PBR')
         # self.draw_asset_parameter(box, key='productionLevel', pretext='Readiness')
         # self.draw_asset_parameter(box, key='condition', pretext='Condition')
-        self.draw_asset_parameter(box, key='material_style', pretext='Style')
-        self.draw_asset_parameter(box, key='model_style', pretext='Style')
+        if utils.profile_is_validator():
+            self.draw_asset_parameter(box, key='materialStyle', pretext='Style')
+            self.draw_asset_parameter(box, key='modelStyle', pretext='Style')
 
         if utils.get_param(self.asset_data, 'dimensionX'):
             t = '%s×%s×%s m' % (utils.fmt_length(mparams['dimensionX']),
diff --git a/blenderkit/version_checker.py b/blenderkit/version_checker.py
index 993ff238..37aeadc4 100644
--- a/blenderkit/version_checker.py
+++ b/blenderkit/version_checker.py
@@ -16,18 +16,23 @@
 #
 # ##### END GPL LICENSE BLOCK #####
 
-
+import bpy
 from blenderkit import paths
 
 import requests, os, json, threading
 
 
 def get_addon_version():
-    import blenderkit
-    ver = blenderkit.bl_info['version']
+    # should return addon version, but since Blender 3.0 this is synced with Blender version
+    ver = bpy.app.version
     return '%i.%i.%i' % (ver[0], ver[1], ver[2])
 
 
+    # import blenderkit
+    # ver = blenderkit.bl_info['version']
+    # return '%i.%i.%i' % (ver[0], ver[1], ver[2])
+
+
 def check_version(url, api_key, module):
     headers = {
         "accept": "application/json",



More information about the Bf-extensions-cvs mailing list