From 34e9f9b527ad12ced0a9d9c24d39ca75877a8403 Mon Sep 17 00:00:00 2001 From: reng Date: Fri, 12 Sep 2025 12:04:52 +0800 Subject: [PATCH] move settings files to resource directory --- vite/public/default.json | 3 +- vite/src-tauri/capabilities/default.json | 13 +++++- vite/src/util/useData.jsx | 59 ++++++++++++++++++------ 3 files changed, 59 insertions(+), 16 deletions(-) diff --git a/vite/public/default.json b/vite/public/default.json index b9416dd..cccedb3 100644 --- a/vite/public/default.json +++ b/vite/public/default.json @@ -7,6 +7,5 @@ "summary_prompt": "將以下一段話整理成一段文字,轉化成一句不超過 50 字的文字。文字抽象,保有遺憾的情緒。語氣沉靜。風格如一段未署名的詩、一句遠景旁白,帶有時間感與留白。不可直接描述事件細節,應使用象徵、比喻或殘句的方式呈現情緒。讓人讀完有重量,卻仍願意繼續前進。", "speech_idle_time": "4000", "sd_prompt_prefix": "a hazy memory of a {{ ", - "sd_prompt_suffix": "}}, soft atmospheric blur, centered ghostly silhouette, fading contours, pastel glow, cinematic haze, (analog film grain), (shallow depth of field:1.3), impressionist style, ethereal light, dreamlike mood, memory fragment haze.", - "id": 13 + "sd_prompt_suffix": "}}, soft atmospheric blur, centered ghostly silhouette, fading contours, pastel glow, cinematic haze, (analog film grain), (shallow depth of field:1.3), impressionist style, ethereal light, dreamlike mood, memory fragment haze." } \ No newline at end of file diff --git a/vite/src-tauri/capabilities/default.json b/vite/src-tauri/capabilities/default.json index f0b26bc..ab09def 100644 --- a/vite/src-tauri/capabilities/default.json +++ b/vite/src-tauri/capabilities/default.json @@ -36,7 +36,12 @@ }, { "path": "$APPDATA/**/*" - } + },{ + "path": "$RESOURCE" + }, + { + "path": "$RESOURCE/**/*" + } ] }, "fs:write-files", @@ -52,6 +57,12 @@ }, { "path": "$APPDATA/**/*" + }, + { + "path": "$RESOURCE" + }, + { + "path": "$RESOURCE/**/*" } ] }, diff --git a/vite/src/util/useData.jsx b/vite/src/util/useData.jsx index ded9531..c044036 100644 --- a/vite/src/util/useData.jsx +++ b/vite/src/util/useData.jsx @@ -8,6 +8,8 @@ const dataContext=createContext(); const filePath= 'param.json'; +const GlobalSettingsPath='./GlobalSettings.json'; +const PrivateSettingsPath='./PrivateSettings.json'; export function DataProvider({children}) { @@ -17,16 +19,36 @@ export function DataProvider({children}) { try{ - const folder=await path.appDataDir(); - if (!(await exists(folder))) { - - console.log('Creating folder:', folder); - await mkdir(folder); + // check exists + const globalExists=await exists(GlobalSettingsPath, { baseDir: BaseDirectory.Resource }); + const privateExists=await exists(PrivateSettingsPath, { baseDir: BaseDirectory.Resource }); + console.log("GlobalSettings exists:", globalExists); + console.log("PrivateSettings exists:", privateExists); + if(!globalExists){ + // copy from public/default.json + const res=await fetch('default.json'); + const defaultData=await res.json(); + await writeTextFile(GlobalSettingsPath, JSON.stringify(defaultData), + { baseDir: BaseDirectory.Resource }); + console.log("Default global settings written to", + path(GlobalSettingsPath, { baseDir: BaseDirectory.Resource })); } + if(!privateExists){ + await writeTextFile(PrivateSettingsPath, JSON.stringify({}), + { baseDir: BaseDirectory.Resource }); + console.log("Empty private settings written to", + path(PrivateSettingsPath, { baseDir: BaseDirectory.Resource })); + } + - const contents=await readTextFile(filePath, { baseDir: BaseDirectory.AppData }); - let output=await JSON.parse(contents); + + // const contents=await readTextFile(filePath, { baseDir: BaseDirectory.AppData }); + const contents=await readTextFile(GlobalSettingsPath, { baseDir: BaseDirectory.Resource }); + let output=await JSON.parse(contents); + const private_contents=await readTextFile(PrivateSettingsPath, { baseDir: BaseDirectory.Resource }); + const private_output=await JSON.parse(private_contents); + output={...output, ...private_output}; // check if all keys in ParamKeys are present in output const missingKeys = ParamKeys.filter(key => !output.hasOwnProperty(key)); @@ -58,10 +80,21 @@ export function DataProvider({children}) { setData(towrite); } + if(towrite.id){ + try{ + await writeTextFile(PrivateSettingsPath, JSON.stringify({ + id: towrite.id + }), { baseDir: BaseDirectory.Resource }); + console.log("Private settings written successfully"); + }catch(error){ + console.error("Error writing private settings:", error); + } + } + + try{ - const folder = await path.appDataDir(); - const res_write=await writeTextFile(`${folder}\\${filePath}`, JSON.stringify(towrite)) - console.log("File written successfully", `${folder}\\${filePath}`); + const res_write=await writeTextFile(GlobalSettingsPath, JSON.stringify(towrite), { baseDir: BaseDirectory.Resource }); + console.log("File written successfully", GlobalSettingsPath, towrite); }catch(error){ console.error("Error writing file:", error); } @@ -87,9 +120,9 @@ export function DataProvider({children}) { read, write, openFile: async () => { - const folder = await path.appDataDir(); - const file = await path.join(folder, filePath); - await openPath(file); + const folder = await path.resourceDir(); + // const file = await path.join(folder, GlobalSettingsPath); + await openPath(folder); }, }}> {children}