· 5 years ago · Dec 11, 2019, 03:00 PM
1var amqp = require('amqplib/callback_api');
2var Minio = require('minio');
3var exec = require('child_process').exec;
4var nodemailer = require('nodemailer');
5
6var minioClient = new Minio.Client({
7 endPoint: '10.15.16.69',
8 port: 9000,
9 useSSL: false,
10 accessKey: 'R1OO3U9I2IISH8JLO15W',
11 secretKey: 'VQ+51Jk0PWBymefxWgenGSfShxmda9KsoYyNwgFC'
12});
13
14const emailFrom = 'deksnis.adrians@gmail.com'
15
16
17var transporter = nodemailer.createTransport( {
18 host: "smtp.gmail.com",
19 port: 587,
20 secure: false,
21 requireTLS: true,
22 auth: {
23 user: emailFrom,
24 pass: ""
25 }
26});
27
28// createEmailsHandler().then(console.log(eMailAccount.user));
29
30amqp.connect('amqp://10.15.16.47', function(error0, connection) {
31 if (error0) {
32 throw error0; }
33 connection.createChannel(function(error1, channel) {
34 if (error1) {
35 throw error1;
36 }
37
38 var queue = "my-queue";
39
40 channel.assertQueue(queue, {
41 durable: true
42 });
43
44 console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", queue)
45
46 channel.consume(queue, function(msg) {
47 const msgContent = msg.content.toString();
48 console.log(" [x] Received %s", msgContent);
49
50 const name = JSON.parse(msgContent).imgName;
51 const email = JSON.parse(msgContent).eName;
52
53 minioClient.fGetObject('cars', name, '/tmp/photo.jpg', function (err) {
54 if (err) {
55 return console.log(err)
56 }
57 console.log('Fetched file!');
58 exec('alpr -c eu -p lv -j /tmp/photo.jpg', function (error, stdout, stderr) {
59 if (error) return console.log(JSON.parse(stderr.toString()));if (error) return console.log('~~~~~~ALPR ERROR~~~~~~+ ' + JSON.parse(stderr.toString()));
60 var plateOutput = JSON.parse(stdout.toString());
61 var msg = "";
62 try {
63 console.log(plateOutput.results[0].plate);
64 msg = plateOutput.results[0].plate
65 } catch (err) {
66 console.log("Kluda numura noteiksana!")
67 msg = "Kluda!"
68 }
69 transporter.sendMail( {
70 from: `${emailFrom}`,
71 to: `${email}`,
72 subject: "alpr test results: " + msg,
73 html: `<p>Test result: ${msg}</p>`
74 }, (err, success) => {
75 if (err) console.log(err);
76 else (console.log("Email sent"))
77 });
78 });
79 });
80 }, {
81 noAck: true
82 });
83 });
84});