implemented first version of the modular IPC system

This commit is contained in:
2025-11-17 18:00:04 +01:00
parent 4b72568ad3
commit 4dc53b9d5f
5 changed files with 149 additions and 18 deletions
+97 -13
View File
@@ -58,22 +58,106 @@ rl.on("line", data =>{
let mainWindow;
function createWindow() {
mainWindow = new electron.BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
preload: `${mainDir}/electron/main/preload.js`
}
});
mainWindow = new electron.BrowserWindow({
width: 800,
height: 800,
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
preload: `${mainDir}/electron/main/preload.js`
}
});
mainWindow.loadFile('./electron/main/index.html');
mainWindow.loadFile('./electron/main/index.html');
}
electron.app.whenReady().then(createWindow);
electron.ipcMain.on("extract", (event, args) => {
mapFunctions.get("extraction-video-to-audio").function(args)
})
// electron.ipcMain.on("extract", (event, args) => {
// mapFunctions.get("extraction-video-to-audio").function(args)
// })
// setTimeout(() => {
// mainWindow.webContents.send("fuck", "worked uwu")
// }, 5000);
electron.ipcMain.on("file_submit", async (event, args) => {
try {
let curstep = 0
let totalsteps = 2 + args.document.styles.length
if(args.document.styles.length == 0)
throw new Error("At least one Document Style needed");
console.log(args);
let audiopath = ""
let transcriptpath = ""
// This code handles the Video to Audio extraction module call
await mapFunctions.get("module-handler").function(args.video.module, {inputVideoPath: args.video.inputVideoPath, outputType: args.video.outputType}).then(resp => {
// console.log(resp);
audiopath = resp
curstep++
mainWindow.webContents.send("progress", {curstep:curstep, totalsteps:totalsteps})
}).catch(err => {
mainWindow.webContents.send("error", err)
return
})
// TODO implement transcription module
// // This code handles the Audio to Text transcription module call
// await mapFunctions.get("module-handler").function(args.transcription.module, audiopath).then(resp => {
// console.log(resp);
// transcriptpath = resp
// curstep++
// mainWindow.webContents.send("progress", {curstep:curstep, totalsteps:totalsteps})
// }).catch(err => {
// mainWindow.webContents.send("error", err)
// return
// })
// TODO implement documentation module
// // This code handles the Text to Document processing module call
// for (let i = 0; i < args.document.styles.length; i++) {
// await mapFunctions.get("module-handler").function(args.document.module, {prompt: args.document.styles[i].prompt, transcript: transcriptpath}).then(resp => {
// console.log(resp);
// transcriptpath = resp
// curstep++
// mainWindow.webContents.send("progress", {curstep:curstep, totalsteps:totalsteps})
// }).catch(err => {
// mainWindow.webContents.send("error", err)
// return
// })
// }
} catch (error) {
console.log(error);
}
})
let q =
{
video: {
module: "String", // The name of the module, idk if we ever implement other extraction modules, the default one is extraction-video-to-audio
inputVideoPath: "String", // See script.js on line 27 for an example of what this should look like
outputType: "String" // The file format to be used for the audio output file, such as wav, mp3, flac and so on
},
transcription:{
module: "String" // The module name of the transcription model you want to use
},
document:{
module: "String", // The module name of the AI model you want to use to create the document
styles: [ // An array of all the document styles/prompts you want to have the document be processed with
{
prompt: "String",
}
]
}
}