diff --git a/src/lang/en.ts b/src/lang/en.ts index 6f327568..e177cda7 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -734,4 +734,5 @@ export const languageEnglish = { enableJsonSchema: "Enable Schema", strictJsonSchema: "Strict Schema", extractJson: "Extract JSON", + reloadSession: "Newer version of save data is found. reloading the session...", } \ No newline at end of file diff --git a/src/ts/process/lorebook.ts b/src/ts/process/lorebook.ts index e4a2b207..f2e8ace9 100644 --- a/src/ts/process/lorebook.ts +++ b/src/ts/process/lorebook.ts @@ -288,8 +288,9 @@ export async function loadLoreBookV3Prompt(){ pos:string, prompt:string role:'system'|'user'|'assistant' - priority:number + order:number tokens:number + priority:number }[] = [] let activatedIndexes:number[] = [] let disabledUIPrompts:string[] = [] @@ -307,6 +308,7 @@ export async function loadLoreBookV3Prompt(){ let pos = '' let depth = 0 let scanDepth = loreDepth + let order = fullLore[i].insertorder let priority = fullLore[i].insertorder let forceState:string = 'none' let role:'system'|'user'|'assistant' = 'system' @@ -434,6 +436,10 @@ export async function loadLoreBookV3Prompt(){ activated = false } } + case 'priority':{ + priority = parseInt(arg[0]) + return + } default:{ return false } @@ -486,8 +492,9 @@ export async function loadLoreBookV3Prompt(){ pos: pos, prompt: content, role: role, - priority: priority, - tokens: await tokenize(content) + order: order, + tokens: await tokenize(content), + priority: priority }) activatedIndexes.push(i) if(recursiveScanning){ @@ -512,8 +519,12 @@ export async function loadLoreBookV3Prompt(){ return false }) + const activesResorted = activesFiltered.sort((a,b) => { + return b.order - a.order + }) + return { - actives: activesFiltered.reverse() + actives: activesResorted.reverse() } } diff --git a/src/ts/storage/accountStorage.ts b/src/ts/storage/accountStorage.ts index 41d1fd00..5ac66973 100644 --- a/src/ts/storage/accountStorage.ts +++ b/src/ts/storage/accountStorage.ts @@ -2,12 +2,14 @@ import { get, writable } from "svelte/store" import { DataBase } from "./database" import { hubURL } from "../characterCards" import localforage from "localforage" -import { alertLogin, alertStore } from "../alert" +import { alertError, alertLogin, alertStore, alertWait } from "../alert" import { forageStorage, getUnpargeables, replaceDbResources } from "./globalApi" import { encodeRisuSave } from "./risuSave" import { v4 } from "uuid" +import { language } from "src/lang" export const AccountWarning = writable('') +const risuSession = Date.now().toFixed(0) let seenWarnings:string[] = [] @@ -26,7 +28,8 @@ export class AccountStorage{ 'content-type': 'application/json', 'x-risu-key': key, 'x-risu-auth': this.auth, - 'X-Format': 'nocheck' + 'X-Format': 'nocheck', + 'x-risu-session': risuSession } }) if(da.headers.get('Content-Type') === 'application/json'){ @@ -37,6 +40,11 @@ export class AccountStorage{ AccountWarning.set(json.warning) } } + if(json?.reloadSession){ + alertWait(language.reloadSession) + location.reload() + return + } } if(da.status === 304){ diff --git a/src/ts/storage/globalApi.ts b/src/ts/storage/globalApi.ts index 2b3baa51..eb86236e 100644 --- a/src/ts/storage/globalApi.ts +++ b/src/ts/storage/globalApi.ts @@ -12,7 +12,7 @@ import { checkRisuUpdate } from "../update"; import { MobileGUI, botMakerMode, selectedCharID } from "../stores"; import { Body, ResponseType, fetch as TauriFetch } from "@tauri-apps/api/http"; import { loadPlugins } from "../plugins/plugins"; -import { alertConfirm, alertError, alertNormal, alertNormalWait, alertSelect, alertTOS } from "../alert"; +import { alertConfirm, alertError, alertNormal, alertNormalWait, alertSelect, alertTOS, alertWait } from "../alert"; import { checkDriverInit, syncDrive } from "../drive/drive"; import { hasher } from "../parser"; import { characterURLImport, hubURL } from "../characterCards"; @@ -299,8 +299,8 @@ export async function saveDb(){ } if(!gotChannel){ gotChannel = true - await alertNormalWait(language.activeTabChange) - gotChannel = false + alertWait(language.activeTabChange) + location.reload() } } }