diff --git a/src/controllers/admin/uploads.js b/src/controllers/admin/uploads.js index b802404fb5..61d98960c6 100644 --- a/src/controllers/admin/uploads.js +++ b/src/controllers/admin/uploads.js @@ -5,6 +5,7 @@ var async = require('async'); var nconf = require('nconf'); var mime = require('mime'); var fs = require('fs'); +var jimp = require('jimp'); var meta = require('../../meta'); var file = require('../../file'); @@ -273,6 +274,17 @@ function uploadImage(filename, folder, uploadedFile, req, res, next) { ], function (err) { next(err, imageData); }); + } else if (path.basename(filename, path.extname(filename)) === 'og:image' && folder === 'system') { + jimp.read(imageData.path).then(function (image) { + meta.configs.setMultiple({ + 'og:image:height': image.bitmap.height, + 'og:image:width': image.bitmap.width, + }, function (err) { + next(err, imageData); + }); + }).catch(function (err) { + next(err); + }); } else { setImmediate(next, null, imageData); } diff --git a/src/meta/tags.js b/src/meta/tags.js index 2f7e95ed3e..09019884c3 100644 --- a/src/meta/tags.js +++ b/src/meta/tags.js @@ -136,8 +136,8 @@ Tags.parse = function (req, data, meta, link, callback) { } addIfNotExists(meta, 'property', 'og:image', ogImage); if (ogImage) { - addIfNotExists(meta, 'property', 'og:image:width', 200); - addIfNotExists(meta, 'property', 'og:image:height', 200); + addIfNotExists(meta, 'property', 'og:image:width', Meta.config['og:image:width'] || 200); + addIfNotExists(meta, 'property', 'og:image:height', Meta.config['og:image:height'] || 200); } link = results.links.links.concat(link || []);