Using thumbnail size instead of original photo size in image tags.

This commit is contained in:
DebaucheryLibrarian
2021-03-18 04:36:04 +01:00
parent 0a92586c53
commit 862a29bb6e
10 changed files with 95 additions and 5 deletions

43
src/web/plugins/media.js Normal file
View File

@@ -0,0 +1,43 @@
'use strict';
const config = require('config');
const { makeExtendSchemaPlugin, gql } = require('graphile-utils');
const schemaExtender = makeExtendSchemaPlugin(_build => ({
typeDefs: gql`
extend type Media {
thumbnailWidth: Int @requires(columns: ["width", "height"])
thumbnailHeight: Int @requires(columns: ["height", "width"])
}
`,
resolvers: {
Media: {
thumbnailWidth(parent, _args, _context, _info) {
if (!parent.width || !parent.height) {
return null;
}
if (parent.height <= config.media.thumbnailSize) {
// thumbnails aren't upscaled
return parent.width;
}
return Math.round(parent.width / (parent.height / config.media.thumbnailSize));
},
thumbnailHeight(parent, _args, _context, _info) {
if (!parent.width || !parent.height) {
return null;
}
if (parent.height <= config.media.thumbnailSize) {
// thumbnails aren't upscaled
return parent.height;
}
return config.media.thumbnailSize;
},
},
},
}));
module.exports = [schemaExtender];

View File

@@ -3,9 +3,11 @@
const ActorPlugins = require('./actors');
const SitePlugins = require('./sites');
// const ReleasePlugins = require('./releases');
const MediaPlugins = require('./media');
module.exports = {
ActorPlugins,
SitePlugins,
ReleasePlugins: [],
MediaPlugins,
};

View File

@@ -8,7 +8,7 @@ const PgConnectionFilterPlugin = require('postgraphile-plugin-connection-filter'
const PgSimplifyInflectorPlugin = require('@graphile-contrib/pg-simplify-inflector');
const PgOrderByRelatedPlugin = require('@graphile-contrib/pg-order-by-related');
const { ActorPlugins, SitePlugins, ReleasePlugins } = require('./plugins/plugins');
const { ActorPlugins, SitePlugins, ReleasePlugins, MediaPlugins } = require('./plugins/plugins');
const connectionString = `postgres://${config.database.query.user}:${config.database.query.password}@${config.database.query.host}:5432/${config.database.query.database}`;
@@ -42,6 +42,7 @@ module.exports = postgraphile(
...ActorPlugins,
...SitePlugins,
...ReleasePlugins,
...MediaPlugins,
],
pgSettings,
},