fix levenshtein
This commit is contained in:
parent
8cbfd02008
commit
7bf9cf9f25
|
@ -58,7 +58,8 @@ function levenshtein(a, b) {
|
||||||
return matrix[b.length][a.length];
|
return matrix[b.length][a.length];
|
||||||
}
|
}
|
||||||
|
|
||||||
var current = {"plate": "", "time": 0, "type": "in"};
|
var currentIn = {"plate": "", "time": 0};
|
||||||
|
var currentOut = {"plate": "", "time": 0};
|
||||||
|
|
||||||
exports.SaveLogs = async function (req, res) {
|
exports.SaveLogs = async function (req, res) {
|
||||||
console.log("req: ", req.body.plate, " current: ", current);
|
console.log("req: ", req.body.plate, " current: ", current);
|
||||||
|
@ -85,16 +86,27 @@ exports.SaveLogs = async function (req, res) {
|
||||||
|
|
||||||
var canSaveLogs = true;
|
var canSaveLogs = true;
|
||||||
var vehicleInfo = {"status": false};
|
var vehicleInfo = {"status": false};
|
||||||
if (req.body.type === current.type && (currentTimestamp - current.time) < 600) {
|
if (req.body.type === "in" && (currentTimestamp - currentIn.time) < 600) {
|
||||||
if (req.body.plate === current.plate) {
|
if (req.body.plate === currentIn.plate) {
|
||||||
|
canSaveLogs = false;
|
||||||
|
} else if (levenshtein(req.body.plate, currentIn.plate) < 2) {
|
||||||
|
canSaveLogs = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (req.body.type === "out" && (currentTimestamp - currentOut.time) < 600) {
|
||||||
|
if (req.body.plate === currentOut.plate) {
|
||||||
|
canSaveLogs = false;
|
||||||
|
} else if (levenshtein(req.body.plate, currentOut.plate) < 2) {
|
||||||
canSaveLogs = false;
|
canSaveLogs = false;
|
||||||
}
|
}
|
||||||
// else if (levenshtein(req.body.type, current.type) < 3) {
|
|
||||||
// canSaveLogs = false;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
if (canSaveLogs) {
|
if (canSaveLogs) {
|
||||||
current = {"plate": req.body.plate, "time": currentTimestamp, "type": req.body.type};
|
if (req.body.type === "in") {
|
||||||
|
currentIn = {"plate": req.body.plate, "time": currentTimestamp};
|
||||||
|
}
|
||||||
|
if (req.body.type === "out") {
|
||||||
|
currentOut = {"plate": req.body.plate, "time": currentTimestamp};
|
||||||
|
}
|
||||||
var fileName = req.body.plate + "_" + currentTimestamp + ".png";
|
var fileName = req.body.plate + "_" + currentTimestamp + ".png";
|
||||||
var plateSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/plate/" + fileName;
|
var plateSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/plate/" + fileName;
|
||||||
var frameSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/frame/" + fileName;
|
var frameSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/frame/" + fileName;
|
||||||
|
@ -118,7 +130,7 @@ exports.SaveLogs = async function (req, res) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE levenshtein('" + req.body.plate + "', `plate`) BETWEEN 0 AND 2 LIMIT 0,1");
|
var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE levenshtein('%" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 LIMIT 0,1");
|
||||||
if (query_plate_levenshtein.length > 0) {
|
if (query_plate_levenshtein.length > 0) {
|
||||||
vehicleInfo = {"status": true, "data": query_plate_levenshtein[0]};
|
vehicleInfo = {"status": true, "data": query_plate_levenshtein[0]};
|
||||||
if (req.body.type == "in") {
|
if (req.body.type == "in") {
|
||||||
|
@ -137,11 +149,11 @@ exports.SaveLogs = async function (req, res) {
|
||||||
await db.query("INSERT INTO logs_unknow(`plate`,`plate_image_in`,`frame_image_in`,`time_in`) VALUES ('" + req.body.plate + "','" + plateSaved + "','" + frameSaved + "'," + currentTimestamp + ")");
|
await db.query("INSERT INTO logs_unknow(`plate`,`plate_image_in`,`frame_image_in`,`time_in`) VALUES ('" + req.body.plate + "','" + plateSaved + "','" + frameSaved + "'," + currentTimestamp + ")");
|
||||||
}
|
}
|
||||||
if (req.body.type == "out") {
|
if (req.body.type == "out") {
|
||||||
var checkIn_raw = await db.query("SELECT * FROM logs_unknow WHERE plate=" + req.body.plate + " AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
var checkIn_raw = await db.query("SELECT * FROM logs_unknow WHERE plate='" + req.body.plate + "' AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
||||||
if (checkIn_raw.length > 0) {
|
if (checkIn_raw.length > 0) {
|
||||||
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_raw[0].id);
|
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_raw[0].id);
|
||||||
} else {
|
} else {
|
||||||
var checkIn_levenshtein = await db.query("SELECT * FROM `logs_unknow` WHERE levenshtein('" + req.body.plate + "', `plate`) BETWEEN 0 AND 2 AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
var checkIn_levenshtein = await db.query("SELECT * FROM `logs_unknow` WHERE levenshtein('%" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
||||||
if (checkIn_levenshtein.length > 0) {
|
if (checkIn_levenshtein.length > 0) {
|
||||||
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_levenshtein[0].id);
|
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_levenshtein[0].id);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user