mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-12 09:18:14 +08:00
✨ 支持 Cookie 数据备份&恢复
This commit is contained in:
@@ -190,6 +190,8 @@ import { useAchievementsStore } from "../store/modules/achievements";
|
||||
import { useUserStore } from "../store/modules/user";
|
||||
// utils
|
||||
import { backupUiafData, restoreUiafData } from "../utils/UIAF";
|
||||
import { backupCookieData } from "../web/utils/backupData";
|
||||
import { restoreCookieData } from "../web/utils/restoreData";
|
||||
import TGSqlite from "../utils/TGSqlite";
|
||||
import TGRequest from "../web/request/TGRequest";
|
||||
|
||||
@@ -367,6 +369,8 @@ async function backupData () {
|
||||
loading.value = true;
|
||||
const achievements = await TGSqlite.getUIAF();
|
||||
await backupUiafData(achievements);
|
||||
const cookie = await TGSqlite.getCookie();
|
||||
await backupCookieData(cookie);
|
||||
loading.value = false;
|
||||
snackbarText.value = "数据已备份!";
|
||||
snackbarColor.value = "success";
|
||||
@@ -376,17 +380,25 @@ async function backupData () {
|
||||
async function restoreData () {
|
||||
loadingTitle.value = "正在恢复数据...";
|
||||
loading.value = true;
|
||||
const res = await restoreUiafData();
|
||||
loading.value = false;
|
||||
if (res) {
|
||||
const fail = [];
|
||||
let res = await restoreUiafData();
|
||||
if (!res) {
|
||||
fail.push("成就数据");
|
||||
}
|
||||
res = await restoreCookieData();
|
||||
if (!res) {
|
||||
fail.push("Cookie");
|
||||
}
|
||||
if (fail.length > 0) {
|
||||
snackbarText.value = `${fail.join("、")} 恢复失败!`;
|
||||
snackbarColor.value = "error";
|
||||
} else {
|
||||
snackbarText.value = "数据已恢复!";
|
||||
snackbarColor.value = "success";
|
||||
snackbar.value = true;
|
||||
} else {
|
||||
snackbarText.value = "未检测到备份数据!";
|
||||
snackbarColor.value = "error";
|
||||
snackbar.value = true;
|
||||
}
|
||||
const cookie = await TGSqlite.getCookie();
|
||||
userStore.initCookie(cookie);
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
async function delTempData () {
|
||||
|
||||
20
src/web/utils/backupData.ts
Normal file
20
src/web/utils/backupData.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* @file web utils backupData.ts
|
||||
* @description 数据备份
|
||||
* @author BTMuli<bt-muli@outlook.com>
|
||||
* @since Alpha v0.2.0
|
||||
*/
|
||||
|
||||
// tauri
|
||||
import { fs, path } from "@tauri-apps/api";
|
||||
|
||||
/**
|
||||
* @description 备份 Cookie 数据
|
||||
* @since Alpha v0.2.0
|
||||
* @param {Record<string, string>} cookie cookie
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
export async function backupCookieData (cookie: Record<string, string>): Promise<void> {
|
||||
const savePath = `${await path.appLocalDataDir()}\\userData\\cookie.json`;
|
||||
await fs.writeTextFile(savePath, JSON.stringify(cookie, null, 2));
|
||||
}
|
||||
24
src/web/utils/restoreData.ts
Normal file
24
src/web/utils/restoreData.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* @file web utils restoreData.ts
|
||||
* @description 数据恢复
|
||||
* @author BTMuli<bt-muli@outlook.com>
|
||||
* @since Alpha v0.2.0
|
||||
*/
|
||||
|
||||
// tauri
|
||||
import { fs, path } from "@tauri-apps/api";
|
||||
// utils
|
||||
import TGSqlite from "../../utils/TGSqlite";
|
||||
|
||||
/**
|
||||
* @description 恢复 Cookie 数据
|
||||
* @since Alpha v0.2.0
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
export async function restoreCookieData (): Promise<boolean> {
|
||||
const cookiePath = `${await path.appLocalDataDir()}\\userData\\cookie.json`;
|
||||
if (!await fs.exists(cookiePath)) return false;
|
||||
const cookieData = await fs.readTextFile(cookiePath);
|
||||
await TGSqlite.saveAppData("cookie", JSON.stringify(JSON.parse(cookieData)));
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user