From 6ad1f2e6826aa659696dfcbac017e1e2d7ab6d4c Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 15 Aug 2022 02:22:44 +0300 Subject: [PATCH] Create clear.js --- scripts/commands/database/clear.js | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 scripts/commands/database/clear.js diff --git a/scripts/commands/database/clear.js b/scripts/commands/database/clear.js new file mode 100644 index 000000000..6ea623b48 --- /dev/null +++ b/scripts/commands/database/clear.js @@ -0,0 +1,35 @@ +const { logger, parser, db, date } = require('../../core') +const { program } = require('commander') + +const options = program + .option( + '-t, --threshold ', + 'Number of days after which the stream should be deleted', + parser.parseNumber, + 7 + ) + .option('--input-dir ', 'Set path to input directory', 'streams') + .parse(process.argv) + .opts() + +async function main() { + await db.streams.load() + + const streams = await db.streams.all() + + let total = 0 + for (const stream of streams) { + if ( + stream.status === 'error' && + date.utc().diff(stream.updated_at, 'day') >= options.threshold + ) { + total += await db.streams.remove({ url: stream.url }, { multi: true }) + } + } + + await db.streams.compact() + + logger.info(`removed ${total} streams`) +} + +main()