diff --git a/helpers/handlebarsHelpers.js b/helpers/handlebarsHelpers.js
index b2560c03..d2b6207d 100644
--- a/helpers/handlebarsHelpers.js
+++ b/helpers/handlebarsHelpers.js
@@ -12,7 +12,7 @@ module.exports = {
ga('send', 'pageview');`;
return new Handlebars.SafeString(gaCode);
},
- addOpenGraph (title, mimeType, showUrl, source, description, thumbnail) {
+ addOpenGraph ({ title, contentType, description, thumbnail, showUrl, source }) {
if (!title || title.trim() === '') {
title = 'Spee.ch';
}
@@ -27,26 +27,26 @@ module.exports = {
const ogImageHeight = '';
const basicTags = `${ogTitle} ${ogUrl} ${ogSiteName} ${ogDescription} ${ogImageWidth} ${ogImageHeight}`;
let ogImage = ``;
- let ogImageType = ``;
+ let ogImageType = ``;
let ogType = ``;
- if (mimeType === 'video/mp4') {
+ if (contentType === 'video/mp4') {
const ogVideo = ``;
const ogVideoSecureUrl = ``;
- const ogVideoType = ``;
+ const ogVideoType = ``;
ogImage = ``;
ogImageType = ``;
ogType = ``;
return new Handlebars.SafeString(`${basicTags} ${ogImage} ${ogImageType} ${ogType} ${ogVideo} ${ogVideoSecureUrl} ${ogVideoType}`);
} else {
- if (mimeType === 'image/gif') {
+ if (contentType === 'image/gif') {
ogType = ``;
};
return new Handlebars.SafeString(`${basicTags} ${ogImage} ${ogImageType} ${ogType}`);
}
},
- addTwitterCard (mimeType, source, embedUrl, directFileUrl) {
+ addTwitterCard ({ contentType, source, embedUrl, directFileUrl }) {
const basicTwitterTags = ``;
- if (mimeType === 'video/mp4') {
+ if (contentType === 'video/mp4') {
const twitterName = '';
const twitterPlayer = ``;
const twitterPlayerWidth = '';
diff --git a/helpers/serveHelpers.js b/helpers/serveHelpers.js
index 869f98f4..a62e7d38 100644
--- a/helpers/serveHelpers.js
+++ b/helpers/serveHelpers.js
@@ -23,12 +23,4 @@ module.exports = {
const openGraphInfo = module.exports.createOpenGraphInfo(claimInfo);
res.status(200).render('showLite', { layout: 'showlite', claimInfo, shortId, openGraphInfo });
},
- createOpenGraphInfo ({ claimId, name, fileExt }) {
- return {
- embedUrl : `https://spee.ch/embed/${claimId}/${name}`,
- showUrl : `https://spee.ch/${claimId}/${name}`,
- source : `https://spee.ch/${claimId}/${name}.${fileExt}`,
- directFileUrl: `https://spee.ch/${claimId}/${name}.${fileExt}`,
- };
- },
};
diff --git a/models/claim.js b/models/claim.js
index 092b0e01..52c385d1 100644
--- a/models/claim.js
+++ b/models/claim.js
@@ -26,6 +26,20 @@ function determineThumbnail (storedThumbnail, defaultThumbnail) {
return storedThumbnail;
};
+function addOpengraphDataToClaim (claim) {
+ claim['embedUrl'] = `https://spee.ch/embed/${claim.claimId}/${claim.name}`;
+ claim['showUrl'] = `https://spee.ch/${claim.claimId}/${claim.name}`;
+ claim['source'] = `https://spee.ch/${claim.claimId}/${claim.name}.${claim.fileExt}`;
+ claim['directFileUrl'] = `https://spee.ch/${claim.claimId}/${claim.name}.${claim.fileExt}`;
+};
+
+function prepareClaimData (claimData) {
+ claimData['thumbnail'] = determineThumbnail(claimData.thumbnail, DEFAULT_THUMBNAIL);
+ claimData['fileExt'] = determineFileExtensionFromContentType(claimData.contentType);
+ claimData = addOpengraphDataToClaim(claimData);
+ return claimData;
+};
+
module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => {
const Claim = sequelize.define(
'Claim',
@@ -337,18 +351,15 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => {
.findAll({
where: { name, claimId },
})
- .then(result => {
- if (!result) {
- return resolve(null);
- };
- switch (result.length) {
+ .then(claimArray => {
+ switch (claimArray.length) {
+ case 0:
+ return resolve(null);
case 1:
- result[0].dataValues.thumbnail = determineThumbnail(result[0].dataValues.thumbnail, DEFAULT_THUMBNAIL);
- result[0].dataValues.fileExt = determineFileExtensionFromContentType(result[0].dataValues.contentType);
- return resolve(result[0]);
+ return resolve(prepareClaimData(claimArray[0].dataValues));
default:
- logger.warn(`more than one entry matches that name (${name}) and claimID (${claimId})`);
- return resolve(result[0]);
+ logger.error(`more than one entry matches that name (${name}) and claimID (${claimId})`);
+ return resolve(prepareClaimData(claimArray[0].dataValues));
}
})
.catch(error => {
diff --git a/views/layouts/show.handlebars b/views/layouts/show.handlebars
index fbf93b80..e0299b8f 100644
--- a/views/layouts/show.handlebars
+++ b/views/layouts/show.handlebars
@@ -10,8 +10,8 @@
{{#unless claimInfo.nsfw}}
- {{{addTwitterCard claimInfo.contentType openGraphInfo.source openGraphInfo.embedUrl openGraphInfo.directFileUrl}}}
- {{{addOpenGraph claimInfo.title claimInfo.contentType openGraphInfo.showUrl openGraphInfo.source claimInfo.description claimInfo.thumbnail}}}
+ {{{addTwitterCard claimInfo }}}
+ {{{addOpenGraph claimInfo }}}
{{/unless}}