Compare commits

...

4 Commits

Author SHA1 Message Date
f00a3c5db1 update 2023-09-21 14:14:46 +07:00
43a4ce2cb6 Update api/controllers/ApiController.js 2023-06-29 06:48:30 +00:00
b16b80b941 Update api/routes/ApiRoutes.js 2023-06-29 06:47:37 +00:00
5bc5f95842 Update 'server.js' 2022-07-13 08:09:23 +00:00
3 changed files with 134 additions and 58 deletions

View File

@ -4,10 +4,10 @@ const fs = require('fs');
exports.ReadAPIConfig = async function (req, res) {
var path = '/root/monitor/setup/apiConfig.txt';
if (fs.existsSync(path)) {
var text = fs.readFileSync(path,'utf8');
res.send({status:true,data:text});
var text = fs.readFileSync(path, 'utf8');
res.send({ status: true, data: text });
} else {
res.send({status:false});
res.send({ status: false });
}
};
@ -22,16 +22,16 @@ exports.SaveAPIConfig = async function (req, res) {
exports.ReadEngineConfig = async function (req, res) {
var path = '/root/monitor/setup/engine.json';
if (fs.existsSync(path)) {
var text = fs.readFileSync(path,'utf8');
if (text === "") {
const { execSync } = require('child_process');
execSync('rm /root/monitor/setup/engine.json');
execSync('sudo systemctl stop S905X_BI');
execSync('sudo systemctl disable S905X_BI');
}
res.send({status:true,data:text});
var text = fs.readFileSync(path, 'utf8');
if (text === "") {
const { execSync } = require('child_process');
execSync('rm /root/monitor/setup/engine.json');
execSync('sudo systemctl stop S905X_BI');
execSync('sudo systemctl disable S905X_BI');
}
res.send({ status: true, data: text });
} else {
res.send({status:false});
res.send({ status: false });
}
};
@ -46,10 +46,10 @@ exports.SaveEngineConfig = async function (req, res) {
exports.ReadConfig = async function (req, res) {
var path = req.body.path + "/data/config.json";
if (fs.existsSync(path)) {
var text = fs.readFileSync(path,'utf8');
res.send({status:true,data:text});
var text = fs.readFileSync(path, 'utf8');
res.send({ status: true, data: text });
} else {
res.send({status:false});
res.send({ status: false });
}
};
@ -60,19 +60,59 @@ exports.Reset = async function (req, res) {
execSync('sudo systemctl stop S905X_BI');
execSync('sudo systemctl disable S905X_BI');
try {
execSync('rm /root/monitor/setup/engine.json');
} catch(err) {
execSync('rm /root/monitor/setup/engine.json');
} catch (err) {
//console.log(err);
}
if (req.body.path !== "") {
try {
execSync('rm -rf ' + req.body.path);
} catch(err) {
//console.log(err);
}
try {
execSync('rm -rf ' + req.body.path);
} catch (err) {
//console.log(err);
}
}
res.send({status:true});
res.send({ status: true });
};
exports.Reboot = async function (req, res) {
const { execSync } = require('child_process');
execSync('sudo reboot now');
res.send({ status: true });
};
exports.ControlEngine = async function (req, res) {
const { execSync } = require('child_process');
if (req.body.action == "off")
execSync('sudo systemctl stop S905X_BI');
else
execSync('sudo systemctl start S905X_BI');
res.send({ status: true });
};
exports.EngineStatus = async function (req, res) {
const { execSync } = require('child_process');
try {
execSync('pgrep FaceProArm');
res.send({ status: true });
} catch (error) {
console.log(error);
res.send({ status: false });
}
};
exports.SetupMedia = async function (req, res) {
const { execSync } = require('child_process');
var text = fs.readFileSync('/root/monitor/setup/engine.json', 'utf8');
var json = JSON.parse(text);
var folderEngine = json.data.engines[0].name;
try {
execSync('rm -rf /root/monitor/engine/' + folderEngine + '/data/audio');
execSync('ln -s /var/www/html/BiFace_Server_Lite/web/data/uploads /root/monitor/engine/' + folderEngine + '/data/bg/uploads');
execSync('ln -s /var/www/html/BiFace_Server_Lite/web/data/audio /root/monitor/engine/' + folderEngine + '/data/audio');
} catch (error) {
}
res.send({ status: true });
};

View File

@ -15,4 +15,11 @@ module.exports = function (app) {
app.route('/Reset').post(Api.Reset);
app.route('/Reboot').post(Api.Reboot);
app.route('/ControlEngine').post(Api.ControlEngine);
app.route('/EngineStatus').get(Api.EngineStatus);
app.route('/SetupMedia').get(Api.SetupMedia);
};

View File

@ -1,15 +1,16 @@
'use strict';
var express = require('express'),
app = express(),
cors = require('cors'),
port = 4004,
bodyParser = require('body-parser'),
jsonwebtoken = require("jsonwebtoken");
app = express(),
cors = require('cors'),
port = 4004,
bodyParser = require('body-parser'),
jsonwebtoken = require("jsonwebtoken");
const http = require("http");
var request = require('request');
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json({ limit: '50mb' }));
const { execSync } = require('child_process');
app.use(function (req, res, next) {
if (req.headers && req.headers.authorization && req.headers.authorization.split(' ')[0] === 'JWT') {
@ -30,7 +31,7 @@ var ApiRoutes = require('./api/routes/ApiRoutes');
ApiRoutes(app);
app.use(function (req, res) {
res.status(404).send({url: req.originalUrl + ' not found'});
res.status(404).send({ url: req.originalUrl + ' not found' });
});
const server = app.listen(port);
@ -63,28 +64,28 @@ setInterval(function () {
console.log("end");
});
});
}, 60000);
}, 20000);
request.get({
url: "http://localhost/api/re-gen-feature",
json: true,
headers: {'User-Agent': 'request'}
}, (err, res, data) => {
if (err) {
console.log('Error:', err);
} else if (res.statusCode !== 200) {
console.log('Status:', res.statusCode);
} else {
// data is already parsed as JSON:
console.log(data);
}
});
url: "http://localhost/api/re-gen-feature",
json: true,
headers: { 'User-Agent': 'request' }
}, (err, res, data) => {
if (err) {
console.log('Error:', err);
} else if (res.statusCode !== 200) {
console.log('Status:', res.statusCode);
} else {
// data is already parsed as JSON:
console.log(data);
}
});
setInterval(function () {
request.get({
url: "http://localhost/api/auto-gen-feature",
json: true,
headers: {'User-Agent': 'request'}
headers: { 'User-Agent': 'request' }
}, (err, res, data) => {
if (err) {
console.log('Error:', err);
@ -97,6 +98,34 @@ setInterval(function () {
});
}, 120000);
setInterval(function () {
request.get({
url: "http://localhost/api/check-time-engine",
json: true,
headers: { 'User-Agent': 'request' }
}, (err, res, data) => {
if (err) {
console.log('Error:', err);
} else if (res.statusCode !== 200) {
console.log('Status:', res.statusCode);
} else {
// data is already parsed as JSON:
console.log("check-time-engine", data.status);
var processActive = false;
try {
execSync('pgrep FaceProArm');
processActive = true;
} catch (error) {
}
if (processActive && !data.status)
execSync('sudo systemctl stop S905X_BI');
if (!processActive && data.status)
execSync('sudo systemctl start S905X_BI');
}
});
}, 10000);
console.log('BiFace Started On Port: ' + port);
module.exports = app;