64 lines
1.5 KiB
Python
64 lines
1.5 KiB
Python
# -*- 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", "dl_model_new_version")
|
|
py_actions = ("open_url")
|
|
|
|
|
|
# handle request from javascript
|
|
# parameter: msg - msg from js as string in a hidden textbox
|
|
# return: dict for result
|
|
def parse_js_msg(msg):
|
|
util.printD("Start parse js msg")
|
|
msg_dict = json.loads(msg)
|
|
|
|
# in case client side run JSON.stringify twice
|
|
if (type(msg_dict) == str):
|
|
msg_dict = json.loads(msg_dict)
|
|
|
|
if "action" not in msg_dict.keys():
|
|
util.printD("Can not find action from js request")
|
|
return
|
|
|
|
action = msg_dict["action"]
|
|
if not action:
|
|
util.printD("Action 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 msg_dict
|
|
|
|
|
|
# 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) |