2018-04-12 21:57:16 -04:00
|
|
|
/**
|
|
|
|
* Websocket event handlers
|
|
|
|
*/
|
2018-04-16 16:37:00 -04:00
|
|
|
const {ExifTool} = require('exiftool-vendored');
|
2018-04-13 23:28:55 -04:00
|
|
|
const {JSONMessage} = require('../helpers/web-socket');
|
2018-04-12 21:57:16 -04:00
|
|
|
|
2018-04-16 16:37:00 -04:00
|
|
|
const exiftool = new ExifTool();
|
|
|
|
|
2018-04-12 21:57:16 -04:00
|
|
|
module.exports = (wss) => {
|
2018-04-13 23:28:55 -04:00
|
|
|
wss.on('connection', ws => {
|
|
|
|
ws.send(JSONMessage('server-log', 'Connected to client!'));
|
2018-04-12 21:57:16 -04:00
|
|
|
|
2018-04-13 23:28:55 -04:00
|
|
|
ws.on('message', (...args) => {
|
2018-04-16 16:37:00 -04:00
|
|
|
const [type, message] = JSON.parse(args);
|
|
|
|
switch (type) {
|
|
|
|
case 'dropped-files':
|
|
|
|
const filemap = [];
|
|
|
|
message.forEach(async file => {
|
|
|
|
const tags = await getExifTags(file);
|
|
|
|
console.info(tags);
|
|
|
|
filemap[file] = tags;
|
|
|
|
});
|
|
|
|
ws.send(JSONMessage('parsed-exif-tags', filemap));
|
|
|
|
break;
|
2018-04-13 23:28:55 -04:00
|
|
|
|
2018-04-16 16:37:00 -04:00
|
|
|
default:
|
|
|
|
return ws.send(JSONMessage('server-log', [type, message]));
|
|
|
|
}
|
2018-04-12 21:57:16 -04:00
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
2018-04-16 16:37:00 -04:00
|
|
|
|
|
|
|
function getExifTags (imgPath) {
|
|
|
|
return exiftool.read(imgPath);
|
|
|
|
}
|