diff options
author | Vilem Duha <vilem.duha@gmail.com> | 2021-10-02 18:32:37 +0300 |
---|---|---|
committer | Vilem Duha <vilem.duha@gmail.com> | 2021-10-02 18:33:14 +0300 |
commit | 13140e3947af5c1becd752e7fb2c627b3ed95d96 (patch) | |
tree | bc71cbf02a0cc0685a57a497285d8a869f534519 | |
parent | 9a285d80167fc8c9e8b0c7ab2f2fd3c7487fa01d (diff) |
BlenderKit: basic asset_browser compatibility
fix default search
report blender version instead of addon version during search
-rw-r--r-- | blenderkit/resolutions.py | 25 | ||||
-rw-r--r-- | blenderkit/search.py | 9 | ||||
-rw-r--r-- | blenderkit/ui_panels.py | 48 | ||||
-rw-r--r-- | blenderkit/version_checker.py | 11 |
4 files changed, 71 insertions, 22 deletions
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", |