File size: 1,544 Bytes
34097e9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# -*- 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) |