Server: use preview image for opengraph

This commit is contained in:
Chocobozzz 2016-11-11 15:44:08 +01:00
parent 55723d16fd
commit 41b5da1d8c
4 changed files with 19 additions and 8 deletions

View File

@ -33,25 +33,36 @@ module.exports = router
// ---------------------------------------------------------------------------
function addOpenGraphTags (htmlStringPage, video) {
const thumbnailUrl = constants.CONFIG.WEBSERVER.URL + video.thumbnailPath
const videoUrl = constants.CONFIG.WEBSERVER.URL + '/videos/watch/'
let baseUrlHttp
if (video.isOwned()) {
baseUrlHttp = constants.CONFIG.WEBSERVER.URL
} else {
baseUrlHttp = constants.REMOTE_SCHEME.HTTP + '://' + video.podUrl
}
// We fetch the remote preview (bigger than the thumbnail)
// This should not overhead the remote server since social websites put in a cache the OpenGraph tags
// We can't use the thumbnail because these social websites want bigger images (> 200x200 for Facebook for example)
const previewUrl = baseUrlHttp + constants.STATIC_PATHS.PREVIEWS + video.getPreviewName()
const metaTags = {
'og:type': 'video',
'og:title': video.name,
'og:image': thumbnailUrl,
'og:image': previewUrl,
'og:url': videoUrl,
'og:description': video.description,
'name': video.name,
'description': video.description,
'image': thumbnailUrl,
'image': previewUrl,
'twitter:card': 'summary_large_image',
'twitter:site': '@Chocobozzz',
'twitter:title': video.name,
'twitter:description': video.description,
'twitter:image': thumbnailUrl
'twitter:image': previewUrl
}
let tagsString = ''

View File

@ -31,7 +31,7 @@ function isEachRemoteVideosValid (requests) {
isVideoDateValid(video.createdDate) &&
isVideoDescriptionValid(video.description) &&
isVideoDurationValid(video.duration) &&
isVideoMagnetValid(video.magnetUri) &&
isVideoMagnetValid(video.magnet) &&
isVideoNameValid(video.name) &&
isVideoPodUrlValid(video.podUrl) &&
isVideoTagsValid(video.tags) &&
@ -63,7 +63,7 @@ function isVideoDurationValid (value) {
}
function isVideoMagnetValid (value) {
return validator.isLength(value.infoHash, VIDEOS_CONSTRAINTS_FIELDS.MAGNET.XT)
return validator.isLength(value.infoHash, VIDEOS_CONSTRAINTS_FIELDS.MAGNET.INFO_HASH)
}
function isVideoNameValid (value) {

View File

@ -67,7 +67,7 @@ const CONSTRAINTS_FIELDS = {
NAME: { min: 3, max: 50 }, // Length
DESCRIPTION: { min: 3, max: 250 }, // Length
MAGNET: {
XT: { min: 10 } // Length
INFO_HASH: { min: 10, max: 50 } // Length
},
DURATION: { min: 1, max: 7200 }, // Number
TAGS: { min: 1, max: 3 }, // Number of total tags

View File

@ -160,7 +160,7 @@ function generateMagnetUri () {
baseUrlHttp = constants.CONFIG.WEBSERVER.URL
baseUrlWs = constants.CONFIG.WEBSERVER.WS + '://' + constants.CONFIG.WEBSERVER.HOSTNAME + ':' + constants.CONFIG.WEBSERVER.PORT
} else {
baseUrlHttp = constants.REMOTE_SCHEME.HTTP + this.podUrl
baseUrlHttp = constants.REMOTE_SCHEME.HTTP + '://' + this.podUrl
baseUrlWs = constants.REMOTE_SCHEME.WS + this.podUrl
}