diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index f9a3b499..7e1b42ac 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -8,7 +8,7 @@ }, "package": { "productName": "RisuAI", - "version": "1.18.0" + "version": "1.18.1" }, "tauri": { "allowlist": { 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/lib/SideBars/Sidebar.svelte b/src/lib/SideBars/Sidebar.svelte index d5ec538d..8bf3c43d 100644 --- a/src/lib/SideBars/Sidebar.svelte +++ b/src/lib/SideBars/Sidebar.svelte @@ -274,15 +274,12 @@ folder?:string } const avatarDragStart = (ind:DragData, e:DragEv) => { - e.dataTransfer.setData("application/json", JSON.stringify({ - type: "risuDrag", - index: ind - })) + e.dataTransfer.setData('text/plain', ''); currentDrag = ind const avatar = e.currentTarget.querySelector('.avatar') - if(avatar){ - e.dataTransfer.setDragImage(avatar, 10, 10); - } + if(avatar){ + e.dataTransfer.setDragImage(avatar, 10, 10); + } } const avatarDragOver = (e:DragEv) => { diff --git a/src/ts/database.ts b/src/ts/database.ts index 74750e9a..b1f4f8b2 100644 --- a/src/ts/database.ts +++ b/src/ts/database.ts @@ -7,7 +7,7 @@ import { cloneDeep } from 'lodash'; export const DataBase = writable({} as any as Database) export const loadedStore = writable(false) -export let appVer = '1.18.0' +export let appVer = '1.18.1' export function setDatabase(data:Database){ 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') diff --git a/version.json b/version.json index 34aef5fe..d620d307 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{"version":"1.18.0"} \ No newline at end of file +{"version":"1.18.1"} \ No newline at end of file