FILES_CONTENT_HASH
} from '../initializers/constants'
import { join } from 'path'
-import { escapeHTML, sha256 } from '../helpers/core-utils'
+import { escapeHTML, isTestInstance, sha256 } from '../helpers/core-utils'
import { VideoModel } from '../models/video/video'
import { VideoPlaylistModel } from '../models/video/video-playlist'
import validator from 'validator'
import { CONFIG } from '../initializers/config'
import { logger } from '../helpers/logger'
import { MAccountActor, MChannelActor } from '../types/models'
+import { HttpStatusCode } from '../../shared/core-utils/miscs/http-error-codes'
type Tags = {
ogType: string
numberOfItems: number
}
+ siteName: string
title: string
url: string
description: string
static async getWatchHTMLPage (videoId: string, req: express.Request, res: express.Response) {
// Let Angular application handle errors
if (!validator.isInt(videoId) && !validator.isUUID(videoId, 4)) {
- res.status(404)
+ res.status(HttpStatusCode.NOT_FOUND_404)
return ClientHtml.getIndexHTML(req, res)
}
// Let Angular application handle errors
if (!video || video.privacy === VideoPrivacy.PRIVATE || video.privacy === VideoPrivacy.INTERNAL || video.VideoBlacklist) {
- res.status(404)
+ res.status(HttpStatusCode.NOT_FOUND_404)
return html
}
const url = WEBSERVER.URL + video.getWatchStaticPath()
const title = escapeHTML(video.name)
+ const siteName = escapeHTML(CONFIG.INSTANCE.NAME)
const description = escapeHTML(video.description)
const image = {
const twitterCard = CONFIG.SERVICES.TWITTER.WHITELISTED ? 'player' : 'summary_large_image'
const schemaType = 'VideoObject'
- customHtml = ClientHtml.addTags(customHtml, { url, title, description, image, embed, ogType, twitterCard, schemaType })
+ customHtml = ClientHtml.addTags(customHtml, { url, siteName, title, description, image, embed, ogType, twitterCard, schemaType })
return customHtml
}
static async getWatchPlaylistHTMLPage (videoPlaylistId: string, req: express.Request, res: express.Response) {
// Let Angular application handle errors
if (!validator.isInt(videoPlaylistId) && !validator.isUUID(videoPlaylistId, 4)) {
- res.status(404)
+ res.status(HttpStatusCode.NOT_FOUND_404)
return ClientHtml.getIndexHTML(req, res)
}
// Let Angular application handle errors
if (!videoPlaylist || videoPlaylist.privacy === VideoPlaylistPrivacy.PRIVATE) {
- res.status(404)
+ res.status(HttpStatusCode.NOT_FOUND_404)
return html
}
const url = videoPlaylist.getWatchUrl()
const title = escapeHTML(videoPlaylist.name)
+ const siteName = escapeHTML(CONFIG.INSTANCE.NAME)
const description = escapeHTML(videoPlaylist.description)
const image = {
const twitterCard = CONFIG.SERVICES.TWITTER.WHITELISTED ? 'player' : 'summary'
const schemaType = 'ItemList'
- customHtml = ClientHtml.addTags(customHtml, { url, embed, title, description, image, list, ogType, twitterCard, schemaType })
+ customHtml = ClientHtml.addTags(customHtml, { url, siteName, embed, title, description, image, list, ogType, twitterCard, schemaType })
return customHtml
}
static async getEmbedHTML () {
const path = ClientHtml.getEmbedPath()
- if (ClientHtml.htmlCache[path]) return ClientHtml.htmlCache[path]
+ if (!isTestInstance() && ClientHtml.htmlCache[path]) return ClientHtml.htmlCache[path]
const buffer = await readFile(path)
// Let Angular application handle errors
if (!entity) {
- res.status(404)
+ res.status(HttpStatusCode.NOT_FOUND_404)
return ClientHtml.getIndexHTML(req, res)
}
customHtml = ClientHtml.addDescriptionTag(customHtml, escapeHTML(entity.description))
const url = entity.Actor.url
+ const siteName = escapeHTML(CONFIG.INSTANCE.NAME)
const title = escapeHTML(entity.getDisplayName())
const description = escapeHTML(entity.description)
const twitterCard = 'summary'
const schemaType = 'ProfilePage'
- customHtml = ClientHtml.addTags(customHtml, { url, title, description, image, ogType, twitterCard, schemaType })
+ customHtml = ClientHtml.addTags(customHtml, { url, title, siteName, description, image, ogType, twitterCard, schemaType })
return customHtml
}
private static async getIndexHTML (req: express.Request, res: express.Response, paramLang?: string) {
const path = ClientHtml.getIndexPath(req, res, paramLang)
- if (ClientHtml.htmlCache[path]) return ClientHtml.htmlCache[path]
+ if (!isTestInstance() && ClientHtml.htmlCache[path]) return ClientHtml.htmlCache[path]
const buffer = await readFile(path)
private static generateOpenGraphMetaTags (tags: Tags) {
const metaTags = {
'og:type': tags.ogType,
+ 'og:site_name': tags.siteName,
'og:title': tags.title,
'og:image': tags.image.url
}