diff options
author | Vilém Duha <vilda.novak@gmail.com> | 2020-05-24 11:34:25 +0300 |
---|---|---|
committer | Vilém Duha <vilda.novak@gmail.com> | 2020-05-27 13:27:05 +0300 |
commit | c5fad30a5dc380219f354a7ef814f601c1283f29 (patch) | |
tree | 51bd73445516213ccf101d2a09b13772b0f8e4e1 | |
parent | 0c551e05a4bec693498f6f699614f8ceb53fa9d9 (diff) |
BlenderKit: Fixes
rating showing to non-logged in users
Upload wasn't showing proper error message when not logged in too.
Replace selected models wasn't shown with no active object
First registration search wasn't shown.
Sorting of uploaded assets for validators was reversed
-rw-r--r-- | blenderkit/__init__.py | 4 | ||||
-rw-r--r-- | blenderkit/bkit_oauth.py | 1 | ||||
-rw-r--r-- | blenderkit/download.py | 2 | ||||
-rw-r--r-- | blenderkit/ratings.py | 1 | ||||
-rw-r--r-- | blenderkit/search.py | 12 | ||||
-rw-r--r-- | blenderkit/ui_panels.py | 17 | ||||
-rw-r--r-- | blenderkit/upload.py | 6 | ||||
-rw-r--r-- | blenderkit/utils.py | 7 |
8 files changed, 45 insertions, 5 deletions
diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py index c6ced37d..575538f8 100644 --- a/blenderkit/__init__.py +++ b/blenderkit/__init__.py @@ -17,12 +17,12 @@ # ##### END GPL LICENSE BLOCK ##### bl_info = { - "name": "BlenderKit Asset Library", + "name": "BlenderKit Online Asset Library", "author": "Vilem Duha, Petr Dlouhy", "version": (1, 0, 30), "blender": (2, 82, 0), "location": "View3D > Properties > BlenderKit", - "description": "Online BlenderKit library (materials, models, brushes and more)", + "description": "Online BlenderKit library (materials, models, brushes and more). Connects to the internet.", "warning": "", "doc_url": "{BLENDER_MANUAL_URL}/addons/add_mesh/blenderkit.html", "category": "3D View", diff --git a/blenderkit/bkit_oauth.py b/blenderkit/bkit_oauth.py index d56629e5..4d2f09dc 100644 --- a/blenderkit/bkit_oauth.py +++ b/blenderkit/bkit_oauth.py @@ -139,6 +139,7 @@ class Logout(bpy.types.Operator): preferences.login_attempt = False preferences.api_key_refresh = '' preferences.api_key = '' + del (bpy.context.window_manager['bkit profile']) return {'FINISHED'} diff --git a/blenderkit/download.py b/blenderkit/download.py index 31b6bae0..feed4e95 100644 --- a/blenderkit/download.py +++ b/blenderkit/download.py @@ -770,6 +770,8 @@ def get_download_url(asset_data, scene_id, api_key, tcom=None): data = { 'scene_uuid': scene_id } + r = None + try: r = rerequests.get(asset_data['download_url'], params=data, headers=headers) except Exception as e: diff --git a/blenderkit/ratings.py b/blenderkit/ratings.py index 2a6b95b0..c6ae4f8c 100644 --- a/blenderkit/ratings.py +++ b/blenderkit/ratings.py @@ -109,6 +109,7 @@ def get_rating(asset_id): def update_ratings_quality(self, context): user_preferences = bpy.context.preferences.addons['blenderkit'].preferences api_key = user_preferences.api_key + headers = utils.get_headers(api_key) asset = self.id_data bkit_ratings = asset.bkit_ratings diff --git a/blenderkit/search.py b/blenderkit/search.py index 8406e47d..a51ff063 100644 --- a/blenderkit/search.py +++ b/blenderkit/search.py @@ -156,7 +156,7 @@ def timer_update(): preferences = bpy.context.preferences.addons['blenderkit'].preferences if first_time: # first time first_time = False - if preferences.show_on_start or preferences.first_run: + if preferences.show_on_start: # TODO here it should check if there are some results, and only open assetbar if this is the case, not search. # if bpy.context.scene.get('search results') is None: search() @@ -167,6 +167,10 @@ def timer_update(): ui.add_report(text='BlenderKit Tip: ' + random.choice(rtips), timeout=12, color=colors.GREEN) return 3.0 + if preferences.first_run: + search() + preferences.first_run = False + check_clipboard() global search_threads @@ -765,7 +769,11 @@ class Searcher(threading.Thread): if query.get('query') is None and query.get('category_subtree') == None: # assumes no keywords and no category, thus an empty search that is triggered on start. # orders by last core file upload - requeststring += '+order:-last_upload' + if query.get('verification_status') == 'uploaded': + #for validators, sort uploaded from oldest + requeststring += '+order:created' + else: + requeststring += '+order:-last_upload' elif query.get('author_id') is not None and utils.profile_is_validator(): requeststring += '+order:-created' diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py index 1dbc7ab5..0dfa54ff 100644 --- a/blenderkit/ui_panels.py +++ b/blenderkit/ui_panels.py @@ -73,6 +73,11 @@ def draw_ratings(layout, context): # this function should run only when asset was already checked to be existing if asset == None: return; + + if not utils.user_logged_in(): + label_multiline(layout, text='Please login or sign up ' + 'to rate assets.') + return bkit_ratings = asset.bkit_ratings ratings.draw_rating(layout, bkit_ratings, 'rating_quality', 'Quality') @@ -89,6 +94,14 @@ def draw_ratings(layout, context): # op = row.operator("object.blenderkit_rating_upload", text="Send rating", icon='URL') # return op +def draw_not_logged_in(source): + title = "User not logged in" + def draw_message(source, context): + layout = source.layout + label_multiline(layout, text='Please login or sign up ' + 'to upload files.') + draw_login_buttons(layout) + bpy.context.window_manager.popup_menu(draw_message, title=title, icon='INFO') def draw_upload_common(layout, props, asset_type, context): op = layout.operator("wm.url_open", text="Read upload instructions", @@ -919,8 +932,10 @@ class OBJECT_MT_blenderkit_asset_menu(bpy.types.Menu): op = layout.operator('view3d.blenderkit_search', text='Search Similar') op.keywords = asset_data['name'] + ' ' + asset_data['description'] + ' ' + ' '.join(asset_data['tags']) if asset_data.get('canDownload') != 0: - if bpy.context.view_layer.objects.active is not None and ui_props.asset_type == 'MODEL': + if len(bpy.context.selected_objects)>0 and ui_props.asset_type == 'MODEL': aob = bpy.context.active_object + if aob is None: + aob = bpy.context.selected_objects[0] op = layout.operator('scene.blenderkit_download', text='Replace Active Models') op.asset_type = ui_props.asset_type op.asset_index = ui_props.active_index diff --git a/blenderkit/upload.py b/blenderkit/upload.py index 980fbf7f..2d38808a 100644 --- a/blenderkit/upload.py +++ b/blenderkit/upload.py @@ -750,6 +750,8 @@ class UploadOperator(Operator): return result + + def draw(self, context): props = utils.get_upload_props() layout = self.layout @@ -774,6 +776,10 @@ class UploadOperator(Operator): def invoke(self, context, event): props = utils.get_upload_props() + if not utils.user_logged_in(): + ui_panels.draw_not_logged_in(self) + return {'CANCELLED'} + if props.is_private == 'PUBLIC': return context.window_manager.invoke_props_dialog(self) else: diff --git a/blenderkit/utils.py b/blenderkit/utils.py index b9bd17f1..92e61de0 100644 --- a/blenderkit/utils.py +++ b/blenderkit/utils.py @@ -546,6 +546,13 @@ def dict_to_params(inputs, parameters=None): return parameters +def user_logged_in(): + a = bpy.context.window_manager.get('bkit profile') + if a is not None: + return True + return False + + def profile_is_validator(): a = bpy.context.window_manager.get('bkit profile') if a is not None and a['user'].get('exmenu'): |