diff --git a/backend/server.js b/backend/server.js index f529b4e..7e013d8 100644 --- a/backend/server.js +++ b/backend/server.js @@ -10,6 +10,7 @@ const mongoUri = process.env.MONGO_URI || 'mongodb://127.0.0.1:27017/default?rep // Minio set-up variables const minioURI = new URL(process.env.MINIO_URI || 'http://kspace-mugshot:2mSI6HdbJ8@127.0.0.1:9000/kspace-mugshot'); const minioBucket = minioURI.pathname.substring(1); +console.info("Using bucket:", minioBucket); const historyNumber = parseInt(process.env.HISTORY_AMOUNT) || 1000; // Stream set-up variables @@ -44,14 +45,12 @@ async function run() { secretKey: minioURI.password }); - function wrapEvent(doc) { + async function wrapEvent(doc) { if (doc && doc.screenshot_count) { doc.screenshots = []; for (let i = 1; i <= doc.screenshot_count ; i++) { - minioClient.presignedUrl('GET', minioBucket, `${doc.camera}/${doc._id}/${i}.jpg`, 60 * 60, (err, presignedUrl) => { - if (err) { return console.log(err) }; - doc.screenshots.push({ url: presignedUrl }); - }) + let presignedUrl = await minioClient.presignedUrl('GET', minioBucket, `${doc.camera}/${doc._id}/${i}.jpg`, 60 * 60); + doc.screenshots.push({ url: presignedUrl }); } }; let blob = JSON.stringify(doc); @@ -62,14 +61,14 @@ async function run() { const header = { 'Content-Type': 'text/event-stream', 'Connection': 'keep-alive' }; response.writeHead(200, "OK", header); - const historyCursor = collection.find({}).sort({$natural : -1}).limit(historyNumber); + const historyCursor = collection.find().sort({$natural:-1}).limit(historyNumber); - historyCursor.forEach((document) => { - response.write(wrapEvent(document)); + historyCursor.forEach(async (document) => { + response.write(await wrapEvent(document)); }) - changeStream.on("change", data => { - response.write(wrapEvent(data.fullDocument)); + changeStream.on("change", async(data) => { + response.write(await wrapEvent(data.fullDocument)); }); }); diff --git a/docker-compose.yml b/docker-compose.yml index 9550284..f1e8ff5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,17 +9,11 @@ x-common: &common ME_CONFIG_MONGODB_ENABLE_ADMIN: 'true' ME_CONFIG_MONGODB_SERVER: '127.0.0.1' ME_CONFIG_MONGODB_AUTH_DATABASE: admin - MONGO_URI: mongodb://127.0.0.1:27017/default?replicaSet=rs0 - MONGO_COLLECTION: eventlog - HISTORY_AMOUNT: 10 MINIO_ACCESS_KEY: kspace-mugshot MINIO_SECRET_KEY: 2mSI6HdbJ8 MINIO_DEFAULT_BUCKETS: kspace-mugshot:download - MINIO_CONSOLE_PORT_NUMBER: 9001 MINIO_URI: 'https://kspace-mugshot:2mSI6HdbJ8@127.0.0.1:9000/kspace-mugshot' - - services: mongoexpress: diff --git a/emitter/emitter.py b/emitter/emitter.py index 44fd63b..ec501f6 100644 --- a/emitter/emitter.py +++ b/emitter/emitter.py @@ -1,3 +1,4 @@ +from datetime import datetime from pymongo import MongoClient from bson.objectid import ObjectId from time import sleep @@ -7,6 +8,14 @@ MONGO_URI="mongodb://127.0.0.1:27017/default" db = MongoClient(MONGO_URI).get_default_database() while True: - db.eventlog.insert_one({ "timestamp": "...", "event": "motion-detected", "started": "...", "finished": "...", "component": "motion-detect", "camera": "Server room", "action": "event", - }) + db.eventlog.insert_one({ + "timestamp": datetime.utcnow(), + "event": "motion-detected", + "started": "...", + "finished": "...", + "component": "motion-detect", + "camera": "Server room", + "action": "event", + "screenshot_count": 1 + }) sleep(1)