From 2f44be450ff64c9bc830d124304aa0914c732560 Mon Sep 17 00:00:00 2001 From: webbrain-one <295484252+webbrain-one@users.noreply.github.com> Date: Sun, 16 Aug 2026 00:44:18 +0300 Subject: [PATCH] Prevent duplicate `addImages` emit on startup Guard `socket.emit('addImages', ...)` so it is no longer executed three times at application start. --- src/frontend/nodejs/app.js | 47 +++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/frontend/nodejs/app.js b/src/frontend/nodejs/app.js index 710f4a5..f60aef7 100644 --- a/src/frontend/nodejs/app.js +++ b/src/frontend/nodejs/app.js @@ -80,43 +80,42 @@ app.get('/', function(req, res) res.sendFile(__dirname + '/index.html'); }); -io.on('connection', function(socket) -{ - var images_abspath = __dirname + static_dir + images_dir, - files = fs.readdirSync(images_abspath), - images = getImages(files, images_abspath); +var images_abspath = __dirname + static_dir + images_dir, + files = fs.readdirSync(images_abspath), + images = getImages(files, images_abspath); - socket.emit('addImages', images, images_dir); - - watcher.on('create', function(file) - { - images.push(basename(file)); - socket.emit('addImage', basename(file), images_dir); - }); - - watcher.on('remove', function(file) +watcher.on('create', function(file) +{ + images.push(basename(file)); + io.sockets.emit('addImage', basename(file), images_dir); +}); + +watcher.on('remove', function(file) +{ + if (images.indexOf(basename(file)) != -1) { - if (images.indexOf(basename(file)) != -1) - { - removeElementFromArray(images, basename(file)); - socket.emit('removeImage', basename(file)); - // TODO keep or erase the record from the database? - } - }); + removeElementFromArray(images, basename(file)); + io.sockets.emit('removeImage', basename(file)); + // TODO keep or erase the record from the database? + } +}); + +io.on('connection', function(socket) +{ + socket.emit('addImages', images, images_dir); socket.on("getData", function(filename) - { + { hash = filename.substr(0, filename.lastIndexOf(".")); var sqlQuery = "SELECT * FROM Images WHERE HASH = '" + hash + "';"; sock = this; - + data = database.get(sqlQuery, function(error, row) { sock.emit('setBackData', filename, row); }); }); - }); watcher.close(watched_dir);