Migrate all DataBase to DBState

This commit is contained in:
kwaroran
2024-10-24 01:59:57 +09:00
parent 4e9190f1b5
commit b3fddb814e
65 changed files with 331 additions and 434 deletions

View File

@@ -2,7 +2,7 @@ import { get } from 'svelte/store'
import type { ScriptMode } from '../process/scripts'
//@ts-ignore
import WorkerUrl from './embedworker?worker&url'
import { DataBase, type Message } from '../storage/database.svelte'
import { getDatabase, type Message } from '../storage/database.svelte'
import { selectedCharID } from '../stores'
import { setDatabase } from '../storage/database.svelte'
@@ -77,14 +77,16 @@ function runVirtualJS(code:string){
}
addWorkerFunction('getChat', async () => {
const db = get(DataBase)
const db = getDatabase({
snapshot: true
})
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
return structuredClone(char.chats[char.chatPage].message)
})
addWorkerFunction('setChat', async (data:Message[]) => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
let newChat:Message[] = []
for(const dat of data){
@@ -117,14 +119,14 @@ addWorkerFunction('setChat', async (data:Message[]) => {
})
addWorkerFunction('getName', async () => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
return char.name
})
addWorkerFunction('setName', async (data:string) => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
if(typeof data !== 'string'){
return false
@@ -135,7 +137,7 @@ addWorkerFunction('setName', async (data:string) => {
})
addWorkerFunction('getDescription', async () => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
if(char.type === 'group'){
@@ -145,7 +147,7 @@ addWorkerFunction('getDescription', async () => {
})
addWorkerFunction('setDescription', async (data:string) => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char =db.characters[selectedChar]
if(typeof data !== 'string'){
@@ -161,14 +163,14 @@ addWorkerFunction('setDescription', async (data:string) => {
})
addWorkerFunction('getCharacterFirstMessage', async () => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
return char.firstMessage
})
addWorkerFunction('setCharacterFirstMessage', async (data:string) => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
if(typeof data !== 'string'){
@@ -181,14 +183,14 @@ addWorkerFunction('setCharacterFirstMessage', async (data:string) => {
})
addWorkerFunction('getBackgroundEmbedding', async () => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
return char.backgroundHTML
})
addWorkerFunction('setBackgroundEmbedding', async (data:string) => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
if(typeof data !== 'string'){
return false
@@ -200,7 +202,7 @@ addWorkerFunction('setBackgroundEmbedding', async (data:string) => {
addWorkerFunction('getState', async (statename) => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
const chat = char.chats[char.chatPage]
@@ -208,7 +210,7 @@ addWorkerFunction('getState', async (statename) => {
})
addWorkerFunction('setState', async (statename, data) => {
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
const char = db.characters[selectedChar]
const chat = char.chats[char.chatPage]
@@ -245,7 +247,7 @@ export async function runCharacterJS(arg:{
}):Promise<any>{
try {
if(arg.code === null){
const db = get(DataBase)
const db = getDatabase()
const selectedChar = get(selectedCharID)
arg.code = db.characters[selectedChar].virtualscript
}

View File

@@ -1,7 +1,7 @@
import { get, writable } from "svelte/store";
import { language } from "../../lang";
import { alertError } from "../alert";
import { DataBase } from "../storage/database.svelte";
import { getDatabase, setDatabaseLite } from "../storage/database.svelte";
import { checkNullish, selectSingleFile, sleep } from "../util";
import type { OpenAIChat } from "../process";
import { globalFetch } from "../storage/globalApi";
@@ -29,7 +29,7 @@ export type RisuPlugin = ProviderPlugin
export async function importPlugin(){
try {
let db = get(DataBase)
let db = getDatabase()
const f = await selectSingleFile(['js'])
if(!f){
return
@@ -96,7 +96,7 @@ export async function importPlugin(){
db.plugins ??= []
db.plugins.push(pluginData)
DataBase.set(db)
setDatabaseLite(db)
loadPlugins()
} catch (error) {
console.error(error)
@@ -123,7 +123,7 @@ function postMsgPluginWorker(type:string, body:any){
let pluginTranslator = false
export async function loadPlugins() {
let db = get(DataBase)
let db = getDatabase()
if(pluginWorker){
pluginWorker.terminate()
pluginWorker = null
@@ -219,7 +219,7 @@ export async function loadPlugins() {
}
case "getArg":{
try {
const db = get(DataBase)
const db = getDatabase()
const arg:string[] = data.body.arg.split('::')
for(const plug of db.plugins){
if(arg[0] === plug.name){
@@ -243,7 +243,7 @@ export async function loadPlugins() {
break
}
case "getChar":{
const db = get(DataBase)
const db = getDatabase()
const charid = get(selectedCharID)
const char = db.characters[charid]
postMsgPluginWorker('fetchData',{
@@ -253,7 +253,7 @@ export async function loadPlugins() {
break
}
case "setChar":{
const db = get(DataBase)
const db = getDatabase()
const charid = get(selectedCharID)
db.characters[charid] = data.body
break
@@ -303,7 +303,7 @@ export async function pluginProcess(arg:{
bias: {[key:string]:string}
}|{}){
try {
let db = get(DataBase)
let db = getDatabase()
if(!pluginWorker){
return {
success: false,