diff --git a/src/lib/Setting/Pages/GlobalRegex.svelte b/src/lib/Setting/Pages/GlobalRegex.svelte
index e3d12359..31076a0a 100644
--- a/src/lib/Setting/Pages/GlobalRegex.svelte
+++ b/src/lib/Setting/Pages/GlobalRegex.svelte
@@ -1,12 +1,13 @@
{language.globalRegexScript}
-
+
{#if $DataBase.globalscript.length === 0}
No Scripts
{/if}
@@ -18,13 +19,21 @@
}}/>
{/each}
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ts/process/scripts.ts b/src/ts/process/scripts.ts
index dc98cd61..0f42095b 100644
--- a/src/ts/process/scripts.ts
+++ b/src/ts/process/scripts.ts
@@ -1,6 +1,10 @@
import { get } from "svelte/store";
import { CharEmotion, selectedCharID } from "../stores";
-import { DataBase, type character } from "../database";
+import { DataBase, setDatabase, type character, type customscript } from "../database";
+import { downloadFile } from "../globalApi";
+import { alertError, alertNormal } from "../alert";
+import { language } from "src/lang";
+import { selectSingleFile } from "../util";
const dreg = /{{data}}/g
const randomness = /\|\|\|/g
@@ -11,10 +15,47 @@ export function processScript(char:character, data:string, mode:ScriptMode){
return processScriptFull(char, data, mode).data
}
+export function exportRegex(){
+ let db = get(DataBase)
+ const script = db.globalscript
+ const data = Buffer.from(JSON.stringify({
+ type: 'regex',
+ data: script
+ }), 'utf-8')
+ downloadFile(`regexscript_export.json`,data)
+ alertNormal(language.successExport)
+}
+
+export async function importRegex(){
+ const filedata = (await selectSingleFile(['json'])).data
+ if(!filedata){
+ return
+ }
+ let db = get(DataBase)
+ try {
+ const imported= JSON.parse(Buffer.from(filedata).toString('utf-8'))
+ if(imported.type === 'regex' && imported.data){
+ const datas:customscript[] = imported.data
+ const script = db.globalscript
+ for(const data of datas){
+ script.push(data)
+ }
+ db.globalscript = script
+ setDatabase(db)
+ }
+ else{
+ alertError("File invaid or corrupted")
+ }
+
+ } catch (error) {
+ alertError(`${error}`)
+ }
+}
+
export function processScriptFull(char:character, data:string, mode:ScriptMode){
let db = get(DataBase)
let emoChanged = false
- const scripts = char.customscript.concat(db.globalscript ?? [])
+ const scripts = (db.globalscript ?? []).concat(char.customscript)
for (const script of scripts){
if(script.type === mode){
const reg = new RegExp(script.in,'g')