-
+
+
+
+
+
{/if}
{#if typeof(currentModule.backgroundEmbedding) === 'string'}
diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte
index 554beb21..5227ef04 100644
--- a/src/lib/SideBars/CharConfig.svelte
+++ b/src/lib/SideBars/CharConfig.svelte
@@ -3,7 +3,7 @@
import { tokenizeAccurate } from "../../ts/tokenizer";
import { DataBase, saveImage as saveAsset, type Database, type character, type groupChat } from "../../ts/storage/database";
import { ShowRealmFrameStore, selectedCharID } from "../../ts/stores";
- import { PlusIcon, SmileIcon, TrashIcon, UserIcon, ActivityIcon, BookIcon, User, CurlyBraces, Volume2Icon } from 'lucide-svelte'
+ import { PlusIcon, SmileIcon, TrashIcon, UserIcon, ActivityIcon, BookIcon, User, CurlyBraces, Volume2Icon, DownloadIcon, FolderUpIcon } from 'lucide-svelte'
import Check from "../UI/GUI/CheckInput.svelte";
import { addCharEmotion, addingEmotion, getCharImage, rmCharEmotion, selectCharImg, makeGroupImage, removeChar, changeCharImage } from "../../ts/characters";
import LoreBook from "./LoreBook/LoreBookSetting.svelte";
@@ -30,6 +30,8 @@
import { registerOnnxModel } from "src/ts/process/transformers";
import MultiLangInput from "../UI/GUI/MultiLangInput.svelte";
import { applyModule } from "src/ts/process/modules";
+ import { exportRegex, importRegex } from "src/ts/process/scripts";
+ import Arcodion from "../UI/Arcodion.svelte";
let subMenu = 0
@@ -564,18 +566,26 @@
{language.regexScript}
-
+
+
+
+
+
{language.triggerScript}
@@ -893,71 +903,72 @@
- {language.additionalAssets}
-
-
-
- | {language.value} |
-
-
- |
-
- {#if (!currentChar.data.additionalAssets) || currentChar.data.additionalAssets.length === 0}
+
+
+
- No Assets
-
- {:else}
- {#each currentChar.data.additionalAssets as assets, i}
-
-
- {#if assetFilePath[i] && database.useAdditionalAssetsPreview}
- {#if assetFileExtensions[i] === 'mp4'}
-
-
- {:else if assetFileExtensions[i] === 'mp3'}
-
- {:else}
-
- {/if}
- {/if}
-
- |
-
-
-
+ |
+
+ {#if (!currentChar.data.additionalAssets) || currentChar.data.additionalAssets.length === 0}
+
+ No Assets
- {/each}
- {/if}
-
-
+ {:else}
+ {#each currentChar.data.additionalAssets as assets, i}
+
+
+ {#if assetFilePath[i] && database.useAdditionalAssetsPreview}
+ {#if assetFileExtensions[i] === 'mp4'}
+
+
+ {:else if assetFileExtensions[i] === 'mp3'}
+
+ {:else}
+
+ {/if}
+ {/if}
+
+ |
+
+
+ {
+ if(currentChar.type === 'character'){
+ currentChar.data.firstMsgIndex = -1
+ let additionalAssets = currentChar.data.additionalAssets
+ additionalAssets.splice(i, 1)
+ currentChar.data.additionalAssets = additionalAssets
+ }
+ }}>
+
+
+ |
+
+ {/each}
+ {/if}
+
+
+
diff --git a/src/lib/UI/Arcodion.svelte b/src/lib/UI/Arcodion.svelte
index 03d4418b..f2325716 100644
--- a/src/lib/UI/Arcodion.svelte
+++ b/src/lib/UI/Arcodion.svelte
@@ -18,7 +18,9 @@
on:click={() => {
open = !open
}}
- >{name}{#if help}
+ >
+ {name}
+ {#if help}
{/if}
{#if open}
diff --git a/src/ts/process/scripts.ts b/src/ts/process/scripts.ts
index 488329a9..e3fe865b 100644
--- a/src/ts/process/scripts.ts
+++ b/src/ts/process/scripts.ts
@@ -20,9 +20,9 @@ export async function processScript(char:character|groupChat, data:string, mode:
return (await processScriptFull(char, data, mode)).data
}
-export function exportRegex(){
+export function exportRegex(s?:customscript[]){
let db = get(DataBase)
- const script = db.globalscript
+ const script = s ?? db.globalscript
const data = Buffer.from(JSON.stringify({
type: 'regex',
data: script
@@ -31,22 +31,22 @@ export function exportRegex(){
alertNormal(language.successExport)
}
-export async function importRegex(){
+export async function importRegex(o?:customscript[]):Promise{
+ o = o ?? []
const filedata = (await selectSingleFile(['json'])).data
if(!filedata){
- return
+ return o
}
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
+ const script = o
for(const data of datas){
script.push(data)
}
- db.globalscript = script
- setDatabase(db)
+ return o
}
else{
alertError("File invaid or corrupted")
@@ -55,6 +55,7 @@ export async function importRegex(){
} catch (error) {
alertError(`${error}`)
}
+ return o
}
let bestMatchCache = new Map()