'use strict'; var express = require('express'), 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' })); const { execSync } = require('child_process'); app.use(function (req, res, next) { if (req.headers && req.headers.authorization && req.headers.authorization.split(' ')[0] === 'JWT') { jsonwebtoken.verify(req.headers.authorization.split(' ')[1], 'RESTFULAPIs', function (err, decode) { if (err) req.user = undefined; req.user = decode; next(); }); } else { req.user = undefined; next(); } }); app.use(cors()); var ApiRoutes = require('./api/routes/ApiRoutes'); ApiRoutes(app); app.use(function (req, res) { res.status(404).send({ url: req.originalUrl + ' not found' }); }); const server = app.listen(port); const io = require('socket.io').listen(server); app.set('socketio', io); io.sockets.on('connection', function (socket) { socket.on('ThemVanTay', function (msg) { socket.broadcast.emit(msg); }); }); setInterval(function () { http.get("http://localhost/api/sync", res => { res.on("data", d => { }); res.on("end", () => { console.log("end"); }); }); }, 60000); setInterval(function () { http.get("http://localhost/api/check-logs", res => { res.on("data", d => { }); res.on("end", () => { console.log("end"); }); }); }, 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); } }); setInterval(function () { request.get({ url: "http://localhost/api/auto-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); } }); }, 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;