2020-11-05 18:58:23 +02:00
|
|
|
const Resource = require('../models/Resource');
|
|
|
|
const Setting = require('../models/Setting').default;
|
|
|
|
const shim = require('../shim').default;
|
|
|
|
const { reg } = require('../registry.js');
|
|
|
|
const { fileExtension } = require('../path-utils');
|
2019-05-11 18:55:40 +02:00
|
|
|
|
|
|
|
const script = {};
|
|
|
|
|
|
|
|
script.exec = async function() {
|
|
|
|
const stats = await shim.fsDriver().readDirStats(Setting.value('resourceDir'));
|
|
|
|
|
2019-05-13 10:50:39 +02:00
|
|
|
let queries = [];
|
2019-05-11 18:55:40 +02:00
|
|
|
for (const stat of stats) {
|
2019-07-29 15:43:53 +02:00
|
|
|
if (fileExtension(stat.path) === 'crypted') continue;
|
2019-05-11 18:55:40 +02:00
|
|
|
const resourceId = Resource.pathToId(stat.path);
|
2019-05-12 12:41:07 +02:00
|
|
|
if (!resourceId) continue;
|
|
|
|
|
2019-05-11 18:55:40 +02:00
|
|
|
queries.push({ sql: 'UPDATE resources SET `size` = ? WHERE id = ?', params: [stat.size, resourceId] });
|
|
|
|
|
|
|
|
if (queries.length >= 1000) {
|
|
|
|
await reg.db().transactionExecBatch(queries);
|
|
|
|
queries = [];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
await reg.db().transactionExecBatch(queries);
|
2019-07-29 15:43:53 +02:00
|
|
|
};
|
2019-05-11 18:55:40 +02:00
|
|
|
|
2019-07-29 15:43:53 +02:00
|
|
|
module.exports = script;
|