use database instead of a hidden file to store last scan timestamp

This commit is contained in:
Daniel Sommer 2022-06-08 14:37:13 +02:00
parent 6917e8b420
commit 25a21bea61

View file

@ -1,6 +1,5 @@
const path = require('path'); const path = require('path');
const chokidar = require('chokidar'); const chokidar = require('chokidar');
const { open, writeFile } = require('fs/promises');
const Environment = require('../models/Environment.js'); const Environment = require('../models/Environment.js');
@ -31,7 +30,6 @@ class Watcher {
env = new Environment(constants.ENVIRONMENT_LASTSCAN, new Date().getTime().toString()); env = new Environment(constants.ENVIRONMENT_LASTSCAN, new Date().getTime().toString());
env.save(); env.save();
} }
ignoreInitial = (new Date().getTime() - await this.#checkHiddenFile(directory)) < (config?.library?.initialscan?.maxage || 86400000);
} }
logger.debug('watching directory \'' + directory + '\'...'); logger.debug('watching directory \'' + directory + '\'...');
this.#handleEvents(chokidar.watch(directory, { this.#handleEvents(chokidar.watch(directory, {
@ -54,38 +52,6 @@ class Watcher {
queue.add(constants.FS_EVENT_CHANGE, file, stats); queue.add(constants.FS_EVENT_CHANGE, file, stats);
}); });
} }
async #checkHiddenFile(directory) {
if (directory === undefined) {
return;
}
const hiddenFile = path.join(directory, '.kannon');
let filehandle;
try {
filehandle = await open(hiddenFile);
return (await filehandle.readFile()).toString();
} catch (error) {
if (error.code === 'ENOENT') {
return await this.#createHiddenFile(hiddenFile);
}
logger.error('encountered an error checking the hidden file \'' + hiddenFile + '\' > ' + error);
} finally {
filehandle?.close();
}
}
async #createHiddenFile(file) {
if (file === undefined) {
return;
}
const timestamp = new Date().getTime().toString();
try {
await writeFile(file, timestamp);
return timestamp;
} catch (error) {
logger.error('encountered an error writing the hidden file \'' + file + '\' > ' + error);
}
}
} }
module.exports = Watcher; module.exports = Watcher;