forked from DebaucheryLibrarian/traxxx
Calculating tag photo dimensions in seed file, improved tag photo lazy loading.
This commit is contained in:
parent
6fef87b0f1
commit
586ff6d4bd
|
@ -10,9 +10,11 @@
|
||||||
class="photo-link"
|
class="photo-link"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
:src="`/img/${photo.thumbnail}`"
|
:src="getPath(photo, 'thumbnail', { local: true })"
|
||||||
:style="{ 'background-image': `url(/img/${photo.thumbnail})` }"
|
:style="{ 'background-image': `url(${getPath(photo, 'lazy', { local: true })})` }"
|
||||||
:alt="photo.comment"
|
:alt="photo.comment"
|
||||||
|
:width="photo.width"
|
||||||
|
:height="photo.height"
|
||||||
class="photo"
|
class="photo"
|
||||||
@load="$emit('load', $event)"
|
@load="$emit('load', $event)"
|
||||||
>
|
>
|
||||||
|
@ -122,6 +124,7 @@ export default {
|
||||||
|
|
||||||
.poster,
|
.poster,
|
||||||
.photo {
|
.photo {
|
||||||
|
width: auto;
|
||||||
max-height: 15rem;
|
max-height: 15rem;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
box-shadow: 0 0 3px var(--shadow-weak);
|
box-shadow: 0 0 3px var(--shadow-weak);
|
||||||
|
|
|
@ -39,6 +39,8 @@ function initTagsActions(store, _router) {
|
||||||
thumbnail
|
thumbnail
|
||||||
lazy
|
lazy
|
||||||
path
|
path
|
||||||
|
width
|
||||||
|
height
|
||||||
comment
|
comment
|
||||||
entity {
|
entity {
|
||||||
id
|
id
|
||||||
|
@ -69,6 +71,8 @@ function initTagsActions(store, _router) {
|
||||||
thumbnail
|
thumbnail
|
||||||
lazy
|
lazy
|
||||||
path
|
path
|
||||||
|
width
|
||||||
|
height
|
||||||
comment
|
comment
|
||||||
entity {
|
entity {
|
||||||
id
|
id
|
||||||
|
@ -160,6 +164,8 @@ function initTagsActions(store, _router) {
|
||||||
thumbnail
|
thumbnail
|
||||||
comment
|
comment
|
||||||
lazy
|
lazy
|
||||||
|
width
|
||||||
|
height
|
||||||
entity {
|
entity {
|
||||||
id
|
id
|
||||||
name
|
name
|
||||||
|
|
|
@ -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 upsert = require('../src/utils/upsert');
|
||||||
|
|
||||||
const sfw = Object.entries({
|
const sfw = Object.entries({
|
||||||
|
@ -951,13 +954,27 @@ exports.seed = knex => Promise.resolve()
|
||||||
[entity.slug]: entity,
|
[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,
|
id: media.id,
|
||||||
path: media.path,
|
path: media.path,
|
||||||
thumbnail: media.thumbnail,
|
thumbnail: media.thumbnail,
|
||||||
lazy: media.lazy,
|
lazy: media.lazy,
|
||||||
mime: media.mime,
|
mime: media.mime,
|
||||||
index: media.index,
|
index: media.index,
|
||||||
|
width: media.width,
|
||||||
|
height: media.height,
|
||||||
comment: media.comment,
|
comment: media.comment,
|
||||||
entity_id: entitiesBySlug[media.entitySlug]?.id,
|
entity_id: entitiesBySlug[media.entitySlug]?.id,
|
||||||
})), 'path', knex);
|
})), 'path', knex);
|
||||||
|
|
Loading…
Reference in New Issue