type Tags = {
ogType: string
- twitterCard: string
+ twitterCard: 'player' | 'summary' | 'summary_large_image'
schemaType: string
list?: {
return this.getAccountOrChannelHTMLPage(() => VideoChannelModel.loadByNameWithHostAndPopulateAccount(nameWithHost), req, res)
}
+ static async getEmbedHTML () {
+ const path = ClientHtml.getEmbedPath()
+
+ if (ClientHtml.htmlCache[path]) return ClientHtml.htmlCache[path]
+
+ const buffer = await readFile(path)
+
+ let html = buffer.toString()
+ html = await ClientHtml.addAsyncPluginCSS(html)
+
+ ClientHtml.htmlCache[path] = html
+
+ return html
+ }
+
private static async getAccountOrChannelHTMLPage (
loader: () => Bluebird<MAccountActor | MChannelActor>,
req: express.Request,
return join(__dirname, '../../../client/dist/' + buildFileLocale(lang) + '/index.html')
}
+ private static getEmbedPath () {
+ return join(__dirname, '../../../client/dist/standalone/videos/embed.html')
+ }
+
private static addHtmlLang (htmlStringPage: string, paramLang: string) {
return htmlStringPage.replace('<html>', `<html lang="${paramLang}">`)
}
metaTags['twitter:image:height'] = tags.image.height
}
+ if (tags.twitterCard === 'player') {
+ metaTags['twitter:player'] = tags.embed.url
+ metaTags['twitter:player:width'] = EMBED_SIZE.width
+ metaTags['twitter:player:height'] = EMBED_SIZE.height
+ }
+
return metaTags
}