이민호

add version 1

......@@ -50,7 +50,7 @@ try {
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || "8080");
var port = normalizePort(process.env.PORT || "3000");
app.set("port", port);
/**
......
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/stylesheets/main.css" />
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<!-- <h1><%= title %></h1>
<p>Welcome to <%= title %></p> -->
<section class="banner full">
<article>
<img src="images/unknown.png" alt="" />
<div class="inner">
<header>
<p>protect your screen from unauthorized personnel</p>
<h2>AI Screensaver</h2>
</header>
</div>
</article>
</section>
<section id="one" class="wrapper style2">
<div class="inner">
<div class="grid-style">
<div>
<div class="box">
<div class="image fit">
<img src="images/person_add.png" alt="" />
</div>
<div class="content">
<header class="align-center">
<p>add user to AWS Rekognition FaceCollection</p>
<h2>Add User</h2>
</header>
<footer class="align-center">
<form action=/register method="post" enctype="multipart/form-data">
<input type="file" id="img" name="img" accept="image/png, image/jpeg" class="button alt">
<input type='hidden' name="collection" id='collection' value="<%= collection %>" >
<input type="text" id="image_id" name="text" placeholder="사진 이름" required><input type="submit" value="등록" class="button alt"">
</form>
</footer>
</div>
</div>
</div>
<div>
<div class="box">
<div class="image fit">
<img src="images/play.png" alt="" />
</div>
<div class="content">
<header class="align-center">
<p>Detect Personnel and analyze</p>
<h2>Run Detection</h2>
</header>
<footer class="align-center">
<form action="/use" method="post">
<input type="hidden" name="landing" id="landing" value="true" />
<!-- <label for="type">Password (4 characters minimum):</label>
<input type='password' name='type' id='type' minlength="4" required/> -->
<input type='hidden' name="collection" id='collection' value="<%= collection %>" >
<select name="type" id="type" class="button alt">
<option value="Desktop">바탕화면</option>
<option value="Logout">로그아웃</option>
<option value="NewDesktop">화면전환</option>
</select>
<input type="submit" value="시작" class="button alt">
</form>
</footer>
</div>
</div>
</div>
</div>
</div>
</section>
<script src="javascripts/jquery.min.js"></script>
<script src="javascripts/jquery.scrollex.min.js"></script>
<script src="javascripts/skel.min.js"></script>
<script src="javascripts/util.js"></script>
<script src="javascripts/main.js"></script>
<script type="text/javascript">
var error = '<%= error %>';
if(error!='')
{
alert(error);
}
</script>
</body>
</html>
var express = require("express");
var router = express.Router();
var AWS = require("aws-sdk");
var fs = require("fs");
var atob = require("atob");
AWS.config.loadFromPath("./config.json");
var rekognition = new AWS.Rekognition();
const { exec } = require("child_process");
router.post("/", function (req, res, next) {
console.log(req.body);
if (req.body.landing == "true") {
res.render("use", {
method: req.body.type,
collection: req.body.collection,
});
} else {
image = req.body.image;
console.log(req.body.collection);
// console.log(image)
// var img_arr = req.body.image.split(',').map(function(item) {
// return parseInt(item, 10);
// });
// console.log(img_arr)
// enc_data = Buffer.from(image.split("data:image/png;base64,")[1], 'base64').toString('ascii')
if (image[11] == "p")
enc_data = atob(image.split("data:image/png;base64,")[1]);
else if (image[11] == "j")
enc_data = atob(image.split("data:image/jpeg;base64,")[1]);
var length = enc_data.length;
imageBytes = new ArrayBuffer(length);
var ua = new Uint8Array(imageBytes);
for (var i = 0; i < length; i++) {
ua[i] = enc_data.charCodeAt(i);
}
// console.log(imageBytes)
var params = {
CollectionId: req.body.collection,
FaceMatchThreshold: 95,
Image: {
Bytes: imageBytes,
},
MaxFaces: 5,
};
rekognition.searchFacesByImage(params, function (err, data) {
if (err) {
console.log(err, err.stack);
} else {
if (data.FaceMatches.length > 0) {
res.render("redirect", {
error: "Recognized!",
collection: req.body.collection,
});
} else {
exec("python action.py " + req.body.type, (error, stdout, stderr) => {
if (error) {
res.render("error", {
message: "Error",
title: "No action.py",
content: "make sure you have cloned github repository",
});
return;
}
if (stderr) {
res.render("error", {
message: "Error",
title: "No action.py",
content: "make sure you have cloned github repository",
});
return;
}
console.log(`stdout: ${stdout}`);
res.render("action");
});
}
}
});
}
});
router.get("/", function (req, res, next) {
res.render("use");
});
module.exports = router;