mirror of
https://github.com/upscayl/upscayl.git
synced 2024-11-24 07:30:19 +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;
|