X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fbots.ts;h=63280dabbf2e14f2182c4d52ce02f2495e6eb122;hb=000eb0e40d74e914f6691305511c44e89cd8bf07;hp=2db86a2d8e63b4e30cb140f1d570c9c74fec9ffb;hpb=2a8c5d0af13f3ccb9a505e1fbc9d324b9d33ba1f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/bots.ts b/server/controllers/bots.ts index 2db86a2d8..63280dabb 100644 --- a/server/controllers/bots.ts +++ b/server/controllers/bots.ts @@ -1,8 +1,7 @@ import * as express from 'express' import { asyncMiddleware } from '../middlewares' -import { CONFIG, ROUTE_CACHE_LIFETIME } from '../initializers' +import { ROUTE_CACHE_LIFETIME, WEBSERVER } from '../initializers/constants' import * as sitemapModule from 'sitemap' -import { logger } from '../helpers/logger' import { VideoModel } from '../models/video/video' import { VideoChannelModel } from '../models/video/video-channel' import { AccountModel } from '../models/account/account' @@ -15,7 +14,7 @@ const botsRouter = express.Router() // Special route that add OpenGraph and oEmbed tags // Do not use a template engine for a so little thing botsRouter.use('/sitemap.xml', - asyncMiddleware(cacheRoute(ROUTE_CACHE_LIFETIME.SITEMAP)), + asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.SITEMAP)), asyncMiddleware(getSitemap) ) @@ -35,26 +34,21 @@ async function getSitemap (req: express.Request, res: express.Response) { urls = urls.concat(await getSitemapAccountUrls()) const sitemap = sitemapModule.createSitemap({ - hostname: CONFIG.WEBSERVER.URL, + hostname: WEBSERVER.URL, urls: urls }) - sitemap.toXML((err, xml) => { - if (err) { - logger.error('Cannot generate sitemap.', { err }) - return res.sendStatus(500) - } + const xml = sitemap.toXML() - res.header('Content-Type', 'application/xml') - res.send(xml) - }) + res.header('Content-Type', 'application/xml') + res.send(xml) } async function getSitemapVideoChannelUrls () { const rows = await VideoChannelModel.listLocalsForSitemap('createdAt') return rows.map(channel => ({ - url: CONFIG.WEBSERVER.URL + '/video-channels/' + channel.Actor.preferredUsername + url: WEBSERVER.URL + '/video-channels/' + channel.Actor.preferredUsername })) } @@ -62,30 +56,31 @@ async function getSitemapAccountUrls () { const rows = await AccountModel.listLocalsForSitemap('createdAt') return rows.map(channel => ({ - url: CONFIG.WEBSERVER.URL + '/accounts/' + channel.Actor.preferredUsername + url: WEBSERVER.URL + '/accounts/' + channel.Actor.preferredUsername })) } async function getSitemapLocalVideoUrls () { - const resultList = await VideoModel.listForApi({ + const { data } = await VideoModel.listForApi({ start: 0, count: undefined, sort: 'createdAt', includeLocalVideos: true, nsfw: buildNSFWFilter(), filter: 'local', - withFiles: false + withFiles: false, + countVideos: false }) - return resultList.data.map(v => ({ - url: CONFIG.WEBSERVER.URL + '/videos/watch/' + v.uuid, + return data.map(v => ({ + url: WEBSERVER.URL + '/videos/watch/' + v.uuid, video: [ { title: v.name, // Sitemap description should be < 2000 characters description: truncate(v.description || v.name, { length: 2000, omission: '...' }), - player_loc: CONFIG.WEBSERVER.URL + '/videos/embed/' + v.uuid, - thumbnail_loc: CONFIG.WEBSERVER.URL + v.getThumbnailStaticPath() + player_loc: WEBSERVER.URL + '/videos/embed/' + v.uuid, + thumbnail_loc: WEBSERVER.URL + v.getMiniatureStaticPath() } ] })) @@ -97,5 +92,5 @@ function getSitemapBasicUrls () { '/videos/local' ] - return paths.map(p => ({ url: CONFIG.WEBSERVER.URL + p })) + return paths.map(p => ({ url: WEBSERVER.URL + p })) }