[feat] change save format again
This commit is contained in:
@@ -3,7 +3,7 @@ import { alertConfirm, alertError, alertMd, alertNormal, alertSelect, alertStore
|
||||
import { DataBase, defaultSdDataFunc, type character, setDatabase, type customscript, type loreSettings, type loreBook } from "./storage/database"
|
||||
import { checkNullish, selectMultipleFile, selectSingleFile, sleep } from "./util"
|
||||
import { language } from "src/lang"
|
||||
import { encode as encodeMsgpack, decode as decodeMsgpack } from "@msgpack/msgpack";
|
||||
import { encode as encodeMsgpack, decode as decodeMsgpack } from "msgpackr";
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import exifr from 'exifr'
|
||||
import { PngMetadata } from "./exif"
|
||||
|
||||
@@ -4,7 +4,7 @@ import exifr from 'exifr'
|
||||
import { alertConfirm, alertError, alertNormal, alertSelect, alertStore } from "./alert";
|
||||
import { language } from "../lang";
|
||||
import { PngMetadata } from "./exif";
|
||||
import { encode as encodeMsgpack, decode as decodeMsgpack } from "@msgpack/msgpack";
|
||||
import { encode as encodeMsgpack, decode as decodeMsgpack } from "msgpackr";
|
||||
import { checkNullish, findCharacterbyId, selectMultipleFile, selectSingleFile, sleep } from "./util";
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { selectedCharID } from "./stores";
|
||||
|
||||
@@ -1,42 +1,34 @@
|
||||
import { decode, encode } from "@msgpack/msgpack";
|
||||
import { isEqual } from "lodash";
|
||||
import { decode, encode } from "msgpackr";
|
||||
import pako from "pako";
|
||||
import { isTauri } from "./globalApi";
|
||||
|
||||
|
||||
export function encodeRisuSave(data:any){
|
||||
const risuSaveHeader = new Uint8Array(Buffer.from("\u0000\u0000RISU",'utf-8'))
|
||||
const encoded = encode(data)
|
||||
|
||||
export function encodeRisuSave(data:any){
|
||||
const encoded = encode(data)
|
||||
if(isTauri){
|
||||
return pako.deflate(encoded)
|
||||
}
|
||||
const mergedArray = new Uint8Array(risuSaveHeader.length + encoded.length);
|
||||
mergedArray.set(risuSaveHeader);
|
||||
mergedArray.set(encoded, risuSaveHeader.length);
|
||||
return mergedArray
|
||||
return encoded
|
||||
}
|
||||
|
||||
export function decodeRisuSave(data:Uint8Array){
|
||||
const risuSaveHeader = new Uint8Array(Buffer.from("\u0000\u0000RISU",'utf-8'))
|
||||
const sub = data.subarray(0, risuSaveHeader.length)
|
||||
if(isEqual(sub, risuSaveHeader)){
|
||||
const realData = data.subarray(risuSaveHeader.length)
|
||||
const dec = decode(realData)
|
||||
return dec
|
||||
try {
|
||||
return decode(data)
|
||||
}
|
||||
else{
|
||||
catch (error) {
|
||||
try {
|
||||
const risuSaveHeader = new Uint8Array(Buffer.from("\u0000\u0000RISU",'utf-8'))
|
||||
const realData = data.subarray(risuSaveHeader.length)
|
||||
const dec = decode(realData)
|
||||
return dec
|
||||
} catch (error) {
|
||||
const buf = Buffer.from(pako.inflate(Buffer.from(data)))
|
||||
try {
|
||||
return JSON.parse(buf.toString('utf-8'))
|
||||
} catch (error) {
|
||||
return decode(buf)
|
||||
}
|
||||
} catch (error) {
|
||||
const realData = data.subarray(risuSaveHeader.length)
|
||||
const dec = decode(realData)
|
||||
return dec
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user