mirror of
https://github.com/fanchenio/DawnLauncher.git
synced 2025-07-13 12:52:10 +08:00
76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
import { dialog, ipcMain } from "electron";
|
|
import { backupData, createBackupRestoreDataWindow } from ".";
|
|
import { closeWindow, relaunch, showErrorMessageBox } from "../commons";
|
|
import { restore } from "./data";
|
|
|
|
export default function () {
|
|
// 创建备份/恢复数据窗口
|
|
ipcMain.on("createBackupRestoreDataWindow", (event, args) => {
|
|
createBackupRestoreDataWindow();
|
|
});
|
|
// 显示备份/恢复数据窗口
|
|
ipcMain.on("showBackupRestoreDataWindow", (event, args) => {
|
|
if (global.backupRestoreDataWindow) {
|
|
global.backupRestoreDataWindow.show();
|
|
}
|
|
});
|
|
// 关闭备份/恢复数据窗口
|
|
ipcMain.on("closeBackupRestoreDataWindow", (event, args) => {
|
|
closeWindow(global.backupRestoreDataWindow);
|
|
});
|
|
// 备份数据
|
|
ipcMain.on("backupData", () => {
|
|
try {
|
|
let filePath = dialog.showSaveDialogSync(global.backupRestoreDataWindow, {
|
|
defaultPath: "Data",
|
|
filters: [{ name: "DB", extensions: ["db"] }],
|
|
});
|
|
if (filePath && filePath.trim() !== "") {
|
|
backupData(filePath).finally(() => {
|
|
// 关闭备份/恢复窗口
|
|
closeWindow(global.backupRestoreDataWindow);
|
|
});
|
|
}
|
|
} catch (e) {
|
|
if (process.env.NODE_ENV === "development") {
|
|
console.log(e);
|
|
}
|
|
}
|
|
});
|
|
// 恢复数据
|
|
ipcMain.on("restoreData", () => {
|
|
try {
|
|
let filePathList = dialog.showOpenDialogSync(
|
|
global.backupRestoreDataWindow,
|
|
{
|
|
filters: [{ name: "Data", extensions: ["db", "json"] }],
|
|
}
|
|
);
|
|
if (filePathList && filePathList.length > 0) {
|
|
let filePath = filePathList[0];
|
|
if (restore(filePath)) {
|
|
// 清空localStorage
|
|
global.mainWindow.webContents.session.clearStorageData({
|
|
storages: ["localstorage"],
|
|
});
|
|
// 重新启动程序
|
|
relaunch();
|
|
} else {
|
|
showErrorMessageBox(
|
|
"backupRestoreDataWindow",
|
|
global.language.restoreDataPrompt
|
|
);
|
|
}
|
|
}
|
|
} catch (e) {
|
|
if (process.env.NODE_ENV === "development") {
|
|
console.log(e);
|
|
}
|
|
showErrorMessageBox(
|
|
"backupRestoreDataWindow",
|
|
global.language.restoreDataPrompt
|
|
);
|
|
}
|
|
});
|
|
}
|