👍️[Update] Model : tauri -> python のデータ部分をbase64でencodeするように修正

This commit is contained in:
misyaguziya
2024-09-03 14:47:22 +09:00
parent 87d2ecef34
commit fb0a4a8f26
7 changed files with 17 additions and 17 deletions

6
package-lock.json generated
View File

@@ -19,6 +19,7 @@
"eslint-plugin-react": "^7.34.2",
"i18next": "^23.11.5",
"jotai": "^2.8.3",
"js-base64": "^3.7.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-i18next": "^14.1.2",
@@ -4360,6 +4361,11 @@
}
}
},
"node_modules/js-base64": {
"version": "3.7.7",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz",
"integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",

View File

@@ -27,6 +27,7 @@
"eslint-plugin-react": "^7.34.2",
"i18next": "^23.11.5",
"jotai": "^2.8.3",
"js-base64": "^3.7.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-i18next": "^14.1.2",

View File

@@ -73,13 +73,5 @@ def splitList(lst:list, split_count:int, to_shuffle:bool=False):
split_lists.append(sub_list)
return split_lists
def encodeUtf8(data:str) -> dict:
data = {i: byte for i, byte in enumerate(data.encode('UTF-8'))}
return data
def decodeUtf8(data:dict) -> str:
data = bytes(data.values()).decode("UTF-8")
return data
def printLog(log:str, data:Any=None) -> None:
print(json.dumps({"status":348, "log":log, "data":str(data)}), flush=True)

View File

@@ -5,7 +5,7 @@ from subprocess import Popen
from threading import Thread
from config import config
from model import model
from utils import getKeyByValue, isUniqueStrings, decodeUtf8, encodeUtf8, printLog
from utils import getKeyByValue, isUniqueStrings, printLog
# Common
class DownloadSoftwareProgressBar:
@@ -289,7 +289,7 @@ class ChatMessage:
def send(self, data):
id = data["id"]
message = decodeUtf8(data["message"])
message = data["message"]
if len(message) > 0:
# addSentMessageLog(message)
translation = ""
@@ -329,8 +329,6 @@ class ChatMessage:
translation = f" ({translation})"
model.logger.info(f"[SENT] {message}{translation}")
message = encodeUtf8(message)
translation = encodeUtf8(translation)
return {"status":200,
"result":{
"id":id,

View File

@@ -3,7 +3,8 @@ import json
import time
from config import config
import webui_controller as controller
from utils import printLog, encodeUtf8
from utils import printLog
import base64
config_mapping = {
"/config/version": "VERSION",
@@ -288,6 +289,8 @@ def main():
if received_data:
endpoint = received_data.get("endpoint", None)
data = received_data.get("data", None)
if data is not None:
data = json.loads(base64.b64decode(data).decode('utf-8'))
with open('process.log', 'a') as f:
f.write(f"received_data : endpoint: {endpoint}, data:{data}\n")
@@ -367,7 +370,7 @@ if __name__ == "__main__":
match endpoint:
case "/controller/callback_messagebox_send":
data = {"id":"123456", "message":encodeUtf8("テスト")}
data = {"id":"123456", "message":"テスト"}
case "/controller/set_your_language_and_country":
data = {"language": "English", "country": "Hong Kong"}
case "/controller/set_target_language_and_country":

View File

@@ -7,14 +7,13 @@ import { useStdoutToPython } from "./useStdoutToPython";
export const useMessage = () => {
const { currentMessageLogsStatus, addMessageLogsStatus, updateMessageLogsStatus } = useMessageLogsStatus();
const { asyncStdoutToPython } = useStdoutToPython();
const encoder = new TextEncoder();
return {
sendMessage: (message) => {
const uuid = crypto.randomUUID();
const send_message_object = {
id: uuid,
message: encoder.encode(message),
message: message,
};
asyncStdoutToPython("/controller/callback_messagebox_send", send_message_object);

View File

@@ -1,9 +1,10 @@
import { store } from "@store";
import { encode } from 'js-base64'
export const useStdoutToPython = () => {
const asyncStdoutToPython = async (path, value) => {
let send_object = { endpoint: path };
if (value) send_object.data = value;
if (value) send_object.data = encode(value);
// send to python
const backend_subprocess = store.backend_subprocess;