Files
SimpleMediaUpscalerLite/frontend/src/app.js
2023-06-04 14:44:13 +02:00

67 lines
2.1 KiB
JavaScript

const express = require( 'express' );
let app = express();
const dialog = require( 'electron' ).dialog;
const cors = require( 'cors' );
const bodyParser = require( 'body-parser' );
const exec = require( 'child_process' ).exec;
const upscaling = require( './upscalingHandler.js' );
const upscalingHandler = new upscaling();
const http = require( 'http' );
const server = require( 'socket.io' ).Server;
const Server = http.createServer( app );
const io = new server( Server, {
cors: {
origin: 'http://localhost:8080'
}
} );
app.use( bodyParser.urlencoded( { extended: false } ) );
app.use( bodyParser.json() );
app.use( cors() );
io.on( 'connection', ( socket ) => {
console.log( 'connected' );
} )
app.get( '/api/getEngines', ( request, response ) => {
console.log( 'engines' );
response.send( { 'data': 'not finished yet' } );
} );
app.get( '/api/getInputFile', ( request, response ) => {
response.send( { 'data': dialog.showOpenDialogSync( {
properties: [ 'openFile' ],
title: 'Select an input file to upscale',
filters: [
{ name: 'Images (.jpg, .png)', extensions: ['jpg', 'png'] },
{ name: 'Movies (.mkv, .mp4)', extensions: ['mkv', 'mp4'] },
{ name: 'All Files', extensions: ['*'] }
]
} ) } );
} );
app.get( '/api/getOutputFile', ( request, response ) => {
response.send( { 'data': dialog.showSaveDialogSync( {
properties: [ 'promptToCreate' ],
title: 'Select an output file',
filters: [
{ name: 'Images (.jpg, .png)', extensions: ['jpg', 'png'] },
{ name: 'Movies (.mkv, .mp4)', extensions: ['mkv', 'mp4'] },
{ name: 'All Files', extensions: ['*'] }
]
} ) } );
} );
app.post( '/api/startUpscaling', ( request, response ) => {
let checks = upscalingHandler.verifyDataIntegrity( request.body );
if ( checks[ 0 ] ) {
response.send( { 'data': checks[ 1 ] } );
upscalingHandler.upscale( request.body, io );
} else {
response.send( { 'data': checks[ 1 ] } );
}
} );
Server.listen( 8081 );