Add LoadingStatusState and improve tokenizer functionality
This commit is contained in:
@@ -16,7 +16,7 @@ import {open} from '@tauri-apps/plugin-shell'
|
||||
import { setDatabase, type Database, defaultSdDataFunc, getDatabase, type character } from "./storage/database.svelte";
|
||||
import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow";
|
||||
import { checkRisuUpdate } from "./update";
|
||||
import { MobileGUI, botMakerMode, selectedCharID, loadedStore, DBState } from "./stores.svelte";
|
||||
import { MobileGUI, botMakerMode, selectedCharID, loadedStore, DBState, LoadingStatusState } from "./stores.svelte";
|
||||
import { loadPlugins } from "./plugins/plugins";
|
||||
import { alertConfirm, alertError, alertNormal, alertNormalWait, alertSelect, alertTOS, alertWait } from "./alert";
|
||||
import { checkDriverInit, syncDrive } from "./drive/drive";
|
||||
@@ -42,6 +42,7 @@ import { updateLorebooks } from "./characters";
|
||||
import { initMobileGesture } from "./hotkey";
|
||||
import { fetch as TauriHTTPFetch } from '@tauri-apps/plugin-http';
|
||||
import { moduleUpdate } from "./process/modules";
|
||||
import type { AccountStorage } from "./storage/accountStorage";
|
||||
|
||||
//@ts-ignore
|
||||
export const isTauri = !!window.__TAURI_INTERNALS__
|
||||
@@ -498,6 +499,7 @@ export async function loadData() {
|
||||
if(!loaded){
|
||||
try {
|
||||
if(isTauri){
|
||||
LoadingStatusState.text = "Checking Files..."
|
||||
appWindow.maximize()
|
||||
if(!await exists('', {baseDir: BaseDirectory.AppData})){
|
||||
await mkdir('', {baseDir: BaseDirectory.AppData})
|
||||
@@ -512,13 +514,18 @@ export async function loadData() {
|
||||
await writeFile('database/database.bin', encodeRisuSaveLegacy({}), {baseDir: BaseDirectory.AppData});
|
||||
}
|
||||
try {
|
||||
const decoded = await decodeRisuSave(await readFile('database/database.bin',{baseDir: BaseDirectory.AppData}))
|
||||
LoadingStatusState.text = "Reading Save File..."
|
||||
const readed = await readFile('database/database.bin',{baseDir: BaseDirectory.AppData})
|
||||
LoadingStatusState.text = "Decoding Save File..."
|
||||
const decoded = await decodeRisuSave(readed)
|
||||
setDatabase(decoded)
|
||||
} catch (error) {
|
||||
LoadingStatusState.text = "Reading Backup Files..."
|
||||
const backups = await getDbBackups()
|
||||
let backupLoaded = false
|
||||
for(const backup of backups){
|
||||
try {
|
||||
LoadingStatusState.text = `Reading Backup File ${backup}...`
|
||||
const backupData = await readFile(`database/dbbackup-${backup}.bin`,{baseDir: BaseDirectory.AppData})
|
||||
setDatabase(
|
||||
await decodeRisuSave(backupData)
|
||||
@@ -532,39 +539,19 @@ export async function loadData() {
|
||||
throw "Your save file is corrupted"
|
||||
}
|
||||
}
|
||||
LoadingStatusState.text = "Checking Update..."
|
||||
await checkRisuUpdate()
|
||||
await changeFullscreen()
|
||||
|
||||
}
|
||||
else{
|
||||
let gotStorage:Uint8Array = await forageStorage.getItem('database/database.bin') as unknown as Uint8Array
|
||||
if(checkNullish(gotStorage)){
|
||||
gotStorage = encodeRisuSaveLegacy({})
|
||||
await forageStorage.setItem('database/database.bin', gotStorage)
|
||||
}
|
||||
try {
|
||||
const decoded = await decodeRisuSave(gotStorage)
|
||||
console.log(decoded)
|
||||
setDatabase(decoded)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
const backups = await getDbBackups()
|
||||
let backupLoaded = false
|
||||
for(const backup of backups){
|
||||
try {
|
||||
const backupData:Uint8Array = await forageStorage.getItem(`database/dbbackup-${backup}.bin`) as unknown as Uint8Array
|
||||
setDatabase(
|
||||
await decodeRisuSave(backupData)
|
||||
)
|
||||
backupLoaded = true
|
||||
} catch (error) {}
|
||||
}
|
||||
if(!backupLoaded){
|
||||
throw "Your save file is corrupted"
|
||||
}
|
||||
}
|
||||
await forageStorage.Init()
|
||||
|
||||
if(await forageStorage.checkAccountSync()){
|
||||
let gotStorage:Uint8Array = await forageStorage.getItem('database/database.bin') as unknown as Uint8Array
|
||||
LoadingStatusState.text = "Checking Account Sync..."
|
||||
let gotStorage:Uint8Array = await (forageStorage.realStorage as AccountStorage).getItem('database/database.bin', (v) => {
|
||||
LoadingStatusState.text = `Loading Save File ${(v*100).toFixed(2)}%`
|
||||
})
|
||||
if(checkNullish(gotStorage)){
|
||||
gotStorage = encodeRisuSaveLegacy({})
|
||||
await forageStorage.setItem('database/database.bin', gotStorage)
|
||||
@@ -578,6 +565,7 @@ export async function loadData() {
|
||||
let backupLoaded = false
|
||||
for(const backup of backups){
|
||||
try {
|
||||
LoadingStatusState.text = `Reading Backup File ${backup}...`
|
||||
const backupData:Uint8Array = await forageStorage.getItem(`database/dbbackup-${backup}.bin`) as unknown as Uint8Array
|
||||
setDatabase(
|
||||
await decodeRisuSave(backupData)
|
||||
@@ -590,10 +578,43 @@ export async function loadData() {
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
LoadingStatusState.text = "Loading Save File..."
|
||||
let gotStorage:Uint8Array = await forageStorage.getItem('database/database.bin') as unknown as Uint8Array
|
||||
LoadingStatusState.text = "Decoding Save File..."
|
||||
if(checkNullish(gotStorage)){
|
||||
gotStorage = encodeRisuSaveLegacy({})
|
||||
await forageStorage.setItem('database/database.bin', gotStorage)
|
||||
}
|
||||
try {
|
||||
const decoded = await decodeRisuSave(gotStorage)
|
||||
console.log(decoded)
|
||||
setDatabase(decoded)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
const backups = await getDbBackups()
|
||||
let backupLoaded = false
|
||||
for(const backup of backups){
|
||||
try {
|
||||
LoadingStatusState.text = `Reading Backup File ${backup}...`
|
||||
const backupData:Uint8Array = await forageStorage.getItem(`database/dbbackup-${backup}.bin`) as unknown as Uint8Array
|
||||
setDatabase(
|
||||
await decodeRisuSave(backupData)
|
||||
)
|
||||
backupLoaded = true
|
||||
} catch (error) {}
|
||||
}
|
||||
if(!backupLoaded){
|
||||
throw "Your save file is corrupted"
|
||||
}
|
||||
}
|
||||
}
|
||||
LoadingStatusState.text = "Checking Drive Sync..."
|
||||
const isDriverMode = await checkDriverInit()
|
||||
if(isDriverMode){
|
||||
return
|
||||
}
|
||||
LoadingStatusState.text = "Checking Service Worker..."
|
||||
if(navigator.serviceWorker && (!Capacitor.isNativePlatform())){
|
||||
usingSw = true
|
||||
await registerSw()
|
||||
@@ -605,13 +626,16 @@ export async function loadData() {
|
||||
characterURLImport()
|
||||
}
|
||||
}
|
||||
LoadingStatusState.text = "Checking Unnecessary Files..."
|
||||
try {
|
||||
await pargeChunks()
|
||||
} catch (error) {}
|
||||
LoadingStatusState.text = "Loading Plugins..."
|
||||
try {
|
||||
await loadPlugins()
|
||||
} catch (error) {}
|
||||
if(getDatabase().account){
|
||||
LoadingStatusState.text = "Checking Account Data..."
|
||||
try {
|
||||
await loadRisuAccountData()
|
||||
} catch (error) {}
|
||||
@@ -625,8 +649,11 @@ export async function loadData() {
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
LoadingStatusState.text = "Checking For Format Update..."
|
||||
await checkNewFormat()
|
||||
const db = getDatabase();
|
||||
|
||||
LoadingStatusState.text = "Updating States..."
|
||||
updateColorScheme()
|
||||
updateTextThemeAndCSS()
|
||||
updateAnimationSpeed()
|
||||
|
||||
Reference in New Issue
Block a user