# -*- coding: UTF-8 -*- # handle msg between js and python side import json from . import util # action list js_actions = ("open_url", "add_trigger_words", "use_preview_prompt") py_actions = ("open_url", "scan_log", "model_new_version") # handle request from javascript # parameter: msg - msg from js as string in a hidden textbox # return: (action, model_type, search_term, prompt, neg_prompt) def parse_js_msg(msg): util.printD("Start parse js msg") msg_dict = json.loads(msg) if "action" not in msg_dict.keys(): util.printD("Can not find action from js request") return if "model_type" not in msg_dict.keys(): util.printD("Can not find model type from js request") return if "search_term" not in msg_dict.keys(): util.printD("Can not find search_term from js request") return if "prompt" not in msg_dict.keys(): util.printD("Can not find prompt from js request") return if "neg_prompt" not in msg_dict.keys(): util.printD("Can not find neg_prompt from js request") return action = msg_dict["action"] model_type = msg_dict["model_type"] search_term = msg_dict["search_term"] prompt = msg_dict["prompt"] neg_prompt = msg_dict["neg_prompt"] if not action: util.printD("Action from js request is None") return if not model_type: util.printD("model_type from js request is None") return if not search_term: util.printD("search_term from js request is None") return if action not in js_actions: util.printD("Unknow action: " + action) return util.printD("End parse js msg") return (action, model_type, search_term, prompt, neg_prompt) # build python side msg for sending to js # parameter: content dict # return: msg as string, to fill into a hidden textbox def build_py_msg(action:str, content:dict): util.printD("Start build_msg") if not content: util.printD("Content is None") return if not action: util.printD("Action is None") return if action not in py_actions: util.printD("Unknow action: " + action) return msg = { "action" : action, "content": content } util.printD("End build_msg") return json.dumps(msg)