diff --git a/src/lib/Setting/Settings.svelte b/src/lib/Setting/Settings.svelte index 1d2578ec..0123634b 100644 --- a/src/lib/Setting/Settings.svelte +++ b/src/lib/Setting/Settings.svelte @@ -88,24 +88,6 @@ {language.accessibility} - { - $SettingsMenuIndex = 8 - }}> - - {language.globalLoreBook} - - { - $SettingsMenuIndex = 9 - }}> - - {language.globalRegexScript} - { const chat = selchar.chats[selchar.chatPage] const characterLore = (achara.type === 'group') ? [] : (achara.globalLore ?? []) const chatLore = chat.localLore ?? [] - const globalLore = db.loreBook[db.loreBookPage]?.data ?? [] - const fullLore = characterLore.concat(chatLore.concat(globalLore)) + const fullLore = characterLore.concat(chatLore.concat(getModuleLorebooks())) return fullLore.map((f) => { return JSON.stringify(f) }).join("ยง\n") diff --git a/src/ts/process/lorebook.ts b/src/ts/process/lorebook.ts index 08f4c262..a46a16d5 100644 --- a/src/ts/process/lorebook.ts +++ b/src/ts/process/lorebook.ts @@ -12,19 +12,7 @@ import { getModuleLorebooks } from "./modules"; export function addLorebook(type:number) { let selectedID = get(selectedCharID) let db = get(DataBase) - if(type === -1){ - db.loreBook[db.loreBookPage].data.push({ - key: '', - comment: `New Lore ${db.loreBook[db.loreBookPage].data.length + 1}`, - content: '', - mode: 'normal', - insertorder: 100, - alwaysActive: false, - secondkey: "", - selective: false - }) - } - else if(type === 0){ + if(type === 0){ db.characters[selectedID].globalLore.push({ key: '', comment: `New Lore ${db.characters[selectedID].globalLore.length + 1}`, @@ -71,9 +59,8 @@ export async function loadLoreBookPrompt(){ const page = char.chatPage const characterLore = char.globalLore ?? [] const chatLore = char.chats[page].localLore ?? [] - const globalLore = db.loreBook[db.loreBookPage]?.data ?? [] const moduleLorebook = getModuleLorebooks() - const fullLore = characterLore.concat(chatLore).concat(moduleLorebook).concat(globalLore) + const fullLore = characterLore.concat(chatLore).concat(moduleLorebook) const currentChat = char.chats[page].message const loreDepth = char.loreSettings?.scanDepth ?? db.loreBookDepth const loreToken = char.loreSettings?.tokenBudget ?? db.loreBookToken @@ -224,8 +211,7 @@ export async function loadLoreBookPlusPrompt(){ const page = char.chatPage const characterLore = char.globalLore ?? [] const chatLore = char.chats[page].localLore ?? [] - const globalLore = db.loreBook[db.loreBookPage]?.data ?? [] - const fullLore = characterLore.concat(chatLore.concat(globalLore)).filter((v) => { return v.content }) + const fullLore = characterLore.concat(chatLore).concat(getModuleLorebooks()).filter((v) => { return v.content }) const currentChat = char.chats[page].message const loreDepth = char.loreSettings?.scanDepth ?? db.loreBookDepth const loreToken = char.loreSettings?.tokenBudget ?? db.loreBookToken @@ -317,7 +303,6 @@ export async function importLoreBook(mode:'global'|'local'|'sglobal'){ const page = mode === 'sglobal' ? -1 : db.characters[selectedID].chatPage let lore = mode === 'global' ? db.characters[selectedID].globalLore : - mode === 'sglobal' ? db.loreBook[db.loreBookPage].data : db.characters[selectedID].chats[page].localLore const lorebook = (await selectSingleFile(['json', 'lorebook'])).data if(!lorebook){ @@ -376,9 +361,6 @@ export async function importLoreBook(mode:'global'|'local'|'sglobal'){ if(mode === 'global'){ db.characters[selectedID].globalLore = lore } - else if(mode === 'sglobal'){ - db.loreBook[db.loreBookPage].data = lore - } else{ db.characters[selectedID].chats[page].localLore = lore } @@ -395,7 +377,6 @@ export async function exportLoreBook(mode:'global'|'local'|'sglobal'){ const page = mode === 'sglobal' ? -1 : db.characters[selectedID].chatPage const lore = mode === 'global' ? db.characters[selectedID].globalLore : - mode === 'sglobal' ? db.loreBook[db.loreBookPage].data : db.characters[selectedID].chats[page].localLore const stringl = Buffer.from(JSON.stringify({ type: 'risu', diff --git a/src/ts/storage/globalApi.ts b/src/ts/storage/globalApi.ts index 9f5c977b..740f8f33 100644 --- a/src/ts/storage/globalApi.ts +++ b/src/ts/storage/globalApi.ts @@ -1,7 +1,7 @@ import { writeBinaryFile,BaseDirectory, readBinaryFile, exists, createDir, readDir, removeFile } from "@tauri-apps/api/fs" import { changeFullscreen, checkNullish, findCharacterbyId, sleep } from "../util" import { convertFileSrc, invoke } from "@tauri-apps/api/tauri" -import { v4 as uuidv4 } from 'uuid'; +import { v4 as uuidv4, v4 } from 'uuid'; import { appDataDir, join } from "@tauri-apps/api/path"; import { get } from "svelte/store"; import {open} from '@tauri-apps/api/shell' @@ -26,6 +26,7 @@ import { saveDbKei } from "../kei/backup"; import { Capacitor, CapacitorHttp } from '@capacitor/core'; import * as CapFS from '@capacitor/filesystem' import { save } from "@tauri-apps/api/dialog"; +import type { RisuModule } from "../process/modules"; //@ts-ignore export const isTauri = !!window.__TAURI__ @@ -985,6 +986,43 @@ async function checkNewFormat() { db.formatversion = 3 } + if(db.formatversion < 4){ + db.modules ??= [] + db.enabledModules ??=[] + //convert globallore and global regex to modules + if(db.globalscript && db.globalscript.length > 0){ + const id = v4() + let regexModule:RisuModule = { + name: "Global Regex", + description: "Converted from legacy global regex", + id: id, + regex: cloneDeep(db.globalscript) + } + db.modules.push(regexModule) + db.enabledModules.push(id) + db.globalscript = [] + } + if(db.loreBook && db.loreBook.length > 0){ + const selIndex = db.loreBookPage + for(let i=0;i