mirror of
https://github.com/upscayl/upscayl.git
synced 2024-11-28 09:20:52 +01:00
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
|
import fs from "fs";
|
||
|
import logit from "./logit";
|
||
|
import { MessageBoxOptions, dialog } from "electron";
|
||
|
|
||
|
const getModels = (folderPath: string | undefined) => {
|
||
|
let models: string[] = [];
|
||
|
let isValid = false;
|
||
|
|
||
|
if (!folderPath) {
|
||
|
logit("❌ Invalid Custom Model Folder Detected");
|
||
|
const options: MessageBoxOptions = {
|
||
|
type: "error",
|
||
|
title: "Invalid Folder",
|
||
|
message:
|
||
|
"The selected folder does not contain valid model files. Make sure you select the folder that ONLY contains '.param' and '.bin' files.",
|
||
|
buttons: ["OK"],
|
||
|
};
|
||
|
dialog.showMessageBoxSync(options);
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
// READ CUSTOM MODELS FOLDER
|
||
|
fs.readdirSync(folderPath).forEach((file) => {
|
||
|
// log.log("Files in Folder: ", file);
|
||
|
if (
|
||
|
file.endsWith(".param") ||
|
||
|
file.endsWith(".PARAM") ||
|
||
|
file.endsWith(".bin") ||
|
||
|
file.endsWith(".BIN")
|
||
|
) {
|
||
|
isValid = true;
|
||
|
const modelName = file.substring(0, file.lastIndexOf(".")) || file;
|
||
|
if (!models.includes(modelName)) {
|
||
|
models.push(modelName);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
if (!isValid) {
|
||
|
logit("❌ Invalid Custom Model Folder Detected");
|
||
|
const options: MessageBoxOptions = {
|
||
|
type: "error",
|
||
|
title: "Invalid Folder",
|
||
|
message:
|
||
|
"The selected folder does not contain valid model files. Make sure you select the folder that ONLY contains '.param' and '.bin' files.",
|
||
|
buttons: ["OK"],
|
||
|
};
|
||
|
dialog.showMessageBoxSync(options);
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
logit("🔎 Detected Custom Models: ", models);
|
||
|
return models;
|
||
|
};
|
||
|
|
||
|
export default getModels;
|