Calculating tag photo dimensions in seed file, improved tag photo lazy loading.

This commit is contained in:
DebaucheryLibrarian
2021-03-16 04:35:26 +01:00
parent 6fef87b0f1
commit 586ff6d4bd
3 changed files with 30 additions and 4 deletions

View File

@@ -1,4 +1,7 @@
// const nanoid = require('nanoid/non-secure');
const path = require('path');
const Promise = require('bluebird');
const sharp = require('sharp');
const upsert = require('../src/utils/upsert');
const sfw = Object.entries({
@@ -951,13 +954,27 @@ exports.seed = knex => Promise.resolve()
[entity.slug]: entity,
}), {});
const { inserted, updated } = await upsert('media', tagMedia.map(media => ({
const tagMediaWithDimensions = await Promise.map(tagMedia, async (media) => {
const { width, height } = await sharp(path.join('public/img', media.path)).metadata(); // size not available from filepath
return {
...media,
width,
height,
};
}, {
concurrency: 20,
});
const { inserted, updated } = await upsert('media', tagMediaWithDimensions.map(media => ({
id: media.id,
path: media.path,
thumbnail: media.thumbnail,
lazy: media.lazy,
mime: media.mime,
index: media.index,
width: media.width,
height: media.height,
comment: media.comment,
entity_id: entitiesBySlug[media.entitySlug]?.id,
})), 'path', knex);