1
0
mirror of https://github.com/upscayl/upscayl.git synced 2024-12-19 10:55:53 +01:00
upscayl/electron/commands/custom-models-select.ts

54 lines
1.6 KiB
TypeScript
Raw Normal View History

2023-09-10 11:14:04 +02:00
import { MessageBoxOptions, dialog } from "electron";
import {
2023-09-10 19:42:18 +02:00
customModelsFolderPath,
2023-09-10 11:14:04 +02:00
setCustomModelsFolderPath,
} from "../utils/config-variables";
import logit from "../utils/logit";
import slash from "../utils/slash";
import COMMAND from "../constants/commands";
import getModels from "../utils/get-models";
2023-09-10 19:42:18 +02:00
import { getMainWindow } from "../main-window";
2023-09-10 11:14:04 +02:00
const customModelsSelect = async (event, message) => {
2023-09-10 19:54:08 +02:00
const mainWindow = getMainWindow();
2023-09-10 11:14:04 +02:00
if (!mainWindow) return;
const { canceled, filePaths: folderPaths } = await dialog.showOpenDialog({
properties: ["openDirectory"],
title: "Select Custom Models Folder",
2023-09-10 19:42:18 +02:00
defaultPath: customModelsFolderPath,
2023-09-10 11:14:04 +02:00
});
if (canceled) {
logit("🚫 Select Custom Models Folder Operation Cancelled");
return null;
} else {
setCustomModelsFolderPath(folderPaths[0]);
if (
!folderPaths[0].endsWith(slash + "models") &&
!folderPaths[0].endsWith(slash + "models" + slash)
) {
logit("❌ Invalid Custom Models Folder Detected: Not a 'models' folder");
const options: MessageBoxOptions = {
type: "error",
title: "Invalid Folder",
message:
"Please make sure that the folder name is 'models' and nothing else.",
buttons: ["OK"],
};
dialog.showMessageBoxSync(options);
return null;
}
mainWindow.webContents.send(
COMMAND.CUSTOM_MODEL_FILES_LIST,
2023-09-10 19:42:18 +02:00
getModels(customModelsFolderPath)
2023-09-10 11:14:04 +02:00
);
2023-09-10 19:42:18 +02:00
logit("📁 Custom Folder Path: ", customModelsFolderPath);
return customModelsFolderPath;
2023-09-10 11:14:04 +02:00
}
};
export default customModelsSelect;