From 1bbae3eaf89ad91b55355a303f043b7488e28d21 Mon Sep 17 00:00:00 2001 From: Vilem Duha Date: Mon, 20 May 2019 11:19:48 +0200 Subject: BlenderKit: split oauth into the original library and it's usage in blenderkit. (the lib is on Github as a new project) --- blenderkit/oauth.py | 115 ---------------------------------------------------- 1 file changed, 115 deletions(-) (limited to 'blenderkit/oauth.py') diff --git a/blenderkit/oauth.py b/blenderkit/oauth.py index c5d1932a..61d6a7e8 100644 --- a/blenderkit/oauth.py +++ b/blenderkit/oauth.py @@ -16,7 +16,6 @@ # # ##### END GPL LICENSE BLOCK ##### -import bpy import json import webbrowser @@ -24,12 +23,6 @@ from http.server import BaseHTTPRequestHandler, HTTPServer from urllib.parse import parse_qs, urlparse import requests -import threading -import blenderkit -from blenderkit import tasks_queue, utils, paths, search, categories - -CLIENT_ID = "IdFRwa3SGA8eMpzhRVFMg5Ts8sPK93xBjif93x0F" -PORTS = [62485, 1234] class SimpleOAuthAuthenticator(object): @@ -90,111 +83,3 @@ class SimpleOAuthAuthenticator(object): def get_refreshed_token(self, refresh_token): return self._get_tokens(refresh_token=refresh_token, grant_type="refresh_token") - - -def login_thread(): - thread = threading.Thread(target=login, args=([]), daemon=True) - thread.start() - - -def login(): - authenticator = SimpleOAuthAuthenticator(server_url=paths.get_bkit_url(), client_id=CLIENT_ID, ports=PORTS) - auth_token, refresh_token = authenticator.get_new_token() - utils.p('tokens retrieved') - tasks_queue.add_task((write_tokens , (auth_token, refresh_token))) - - -def refresh_token_thread(): - preferences = bpy.context.preferences.addons['blenderkit'].preferences - if len(preferences.api_key_refresh) > 0: - thread = threading.Thread(target=refresh_token, args=([preferences.api_key_refresh]), daemon=True) - thread.start() - - -def refresh_token(api_key_refresh): - authenticator = SimpleOAuthAuthenticator(server_url=paths.get_bkit_url(), client_id=CLIENT_ID, ports=PORTS) - auth_token, refresh_token = authenticator.get_refreshed_token(api_key_refresh) - if auth_token is not None and refresh_token is not None: - tasks_queue.add_task((blenderkit.oauth.write_tokens , (auth_token, refresh_token))) - - -def write_tokens(auth_token, refresh_token): - utils.p('writing tokens') - preferences = bpy.context.preferences.addons['blenderkit'].preferences - preferences.api_key_refresh = refresh_token - preferences.api_key = auth_token - preferences.login_attempt = False - props = utils.get_search_props() - props.report = 'Login success!' - search.get_profile() - categories.fetch_categories_thread(auth_token) - - -class RegisterLoginOnline(bpy.types.Operator): - """Bring linked object hierarchy to scene and make it editable.""" - - bl_idname = "wm.blenderkit_login" - bl_label = "BlenderKit login or signup" - bl_options = {'REGISTER', 'UNDO'} - - @classmethod - def poll(cls, context): - return True - - def execute(self, context): - preferences = bpy.context.preferences.addons['blenderkit'].preferences - preferences.login_attempt = True - login_thread() - return {'FINISHED'} - - -class Logout(bpy.types.Operator): - """Bring linked object hierarchy to scene and make it editable.""" - - bl_idname = "wm.blenderkit_logout" - bl_label = "BlenderKit logout" - bl_options = {'REGISTER', 'UNDO'} - - @classmethod - def poll(cls, context): - return True - - def execute(self, context): - preferences = bpy.context.preferences.addons['blenderkit'].preferences - preferences.login_attempt = False - preferences.api_key_refresh = '' - preferences.api_key = '' - return {'FINISHED'} - - -class CancelLoginOnline(bpy.types.Operator): - """Cancel login attempt.""" - - bl_idname = "wm.blenderkit_login_cancel" - bl_label = "BlenderKit login cancel" - bl_options = {'REGISTER', 'UNDO'} - - @classmethod - def poll(cls, context): - return True - - def execute(self, context): - preferences = bpy.context.preferences.addons['blenderkit'].preferences - preferences.login_attempt = False - return {'FINISHED'} - -classess = ( - RegisterLoginOnline, - CancelLoginOnline, - Logout, -) - - -def register(): - for c in classess: - bpy.utils.register_class(c) - - -def unregister(): - for c in classess: - bpy.utils.unregister_class(c) -- cgit v1.2.3