[feat] backup selection
This commit is contained in:
@@ -199,6 +199,8 @@ export const languageEnglish = {
|
|||||||
type: "Type",
|
type: "Type",
|
||||||
editInput: "Modfiy Input",
|
editInput: "Modfiy Input",
|
||||||
editOutput: "Modfiy Output",
|
editOutput: "Modfiy Output",
|
||||||
editProcess: "Modfiy Request Data"
|
editProcess: "Modfiy Request Data",
|
||||||
|
loadLatest: "Load Latest Backup",
|
||||||
|
loadOthers: "Load Other Backups"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,5 +199,7 @@ export const languageKorean = {
|
|||||||
type: "타입",
|
type: "타입",
|
||||||
editInput: "입력문 수정",
|
editInput: "입력문 수정",
|
||||||
editOutput: "출력문 수정",
|
editOutput: "출력문 수정",
|
||||||
editProcess: "리퀘스트 데이터 수정"
|
editProcess: "리퀘스트 데이터 수정",
|
||||||
|
loadLatest: "가장 최근 백업 불러오기",
|
||||||
|
loadOthers: "다른 백업 불러오기"
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { get } from "svelte/store";
|
import { get } from "svelte/store";
|
||||||
import { alertError, alertInput, alertNormal, alertStore } from "../alert";
|
import { alertError, alertInput, alertNormal, alertSelect, alertStore } from "../alert";
|
||||||
import { DataBase, setDatabase, type Database } from "../database";
|
import { DataBase, setDatabase, type Database } from "../database";
|
||||||
import { forageStorage, getUnpargeables, isTauri } from "../globalApi";
|
import { forageStorage, getUnpargeables, isTauri } from "../globalApi";
|
||||||
import pako from "pako";
|
import pako from "pako";
|
||||||
@@ -177,8 +177,8 @@ async function loadDrive(ACCESS_TOKEN:string) {
|
|||||||
return d.name
|
return d.name
|
||||||
})
|
})
|
||||||
|
|
||||||
let latestDb:DriveFile = null
|
|
||||||
let latestDbDate = 0
|
let dbs:[DriveFile,number][] = []
|
||||||
|
|
||||||
for(const f of files){
|
for(const f of files){
|
||||||
if(f.name.endsWith("-database.risudat")){
|
if(f.name.endsWith("-database.risudat")){
|
||||||
@@ -187,15 +187,26 @@ async function loadDrive(ACCESS_TOKEN:string) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(tm > latestDbDate){
|
dbs.push([f,tm])
|
||||||
latestDb = f
|
|
||||||
latestDbDate = tm
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(latestDbDate !== 0){
|
dbs.sort((a,b) => {
|
||||||
const db:Database = JSON.parse(Buffer.from(pako.inflate(await getFileData(ACCESS_TOKEN, latestDb.id))).toString('utf-8'))
|
return b[1] - a[1]
|
||||||
|
})
|
||||||
|
|
||||||
|
if(dbs.length !== 0){
|
||||||
|
let selectables:string[] = []
|
||||||
|
for(let i=0;i<dbs.length;i++){
|
||||||
|
selectables.push(`Backup saved in ${(new Date(dbs[i][1] * 1000)).toLocaleString()}`)
|
||||||
|
if(selectables.length > 7){
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const selectedIndex = (await alertSelect([language.loadLatest, language.loadOthers]) === '0') ? 0 : parseInt(await alertSelect(selectables))
|
||||||
|
const selectedDb = dbs[selectedIndex][0]
|
||||||
|
|
||||||
|
const db:Database = JSON.parse(Buffer.from(pako.inflate(await getFileData(ACCESS_TOKEN, selectedDb.id))).toString('utf-8'))
|
||||||
const requiredImages = (getUnpargeables(db))
|
const requiredImages = (getUnpargeables(db))
|
||||||
let ind = 0;
|
let ind = 0;
|
||||||
for(const images of requiredImages){
|
for(const images of requiredImages){
|
||||||
@@ -253,6 +264,9 @@ async function loadDrive(ACCESS_TOKEN:string) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
location.search = ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkImageExist(image:string){
|
function checkImageExist(image:string){
|
||||||
|
|||||||
Reference in New Issue
Block a user