X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Ffeeds.ts;h=ccb9b60292e7a26818f602290cbb95ef24d79860;hb=1cd3facc3de899ac864e979cd6d6a704b712cce3;hp=ece5dc067b17266dde84c96ad4506e742f6f00a3;hpb=749c7247ae9042a74d132afda0c7eefab66a0428;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/feeds.ts b/server/controllers/feeds.ts index ece5dc067..ccb9b6029 100644 --- a/server/controllers/feeds.ts +++ b/server/controllers/feeds.ts @@ -1,12 +1,21 @@ import * as express from 'express' import { CONFIG, FEEDS, ROUTE_CACHE_LIFETIME } from '../initializers/constants' -import { asyncMiddleware, setDefaultSort, videoCommentsFeedsValidator, videoFeedsValidator, videosSortValidator } from '../middlewares' +import { THUMBNAILS_SIZE } from '../initializers' +import { + asyncMiddleware, + commonVideosFiltersValidator, + setDefaultSort, + videoCommentsFeedsValidator, + videoFeedsValidator, + videosSortValidator +} from '../middlewares' import { VideoModel } from '../models/video/video' import * as Feed from 'pfeed' import { AccountModel } from '../models/account/account' import { cacheRoute } from '../middlewares/cache' import { VideoChannelModel } from '../models/video/video-channel' import { VideoCommentModel } from '../models/video/video-comment' +import { buildNSFWFilter } from '../helpers/express-utils' const feedsRouter = express.Router() @@ -20,6 +29,7 @@ feedsRouter.get('/feeds/videos.:format', videosSortValidator, setDefaultSort, asyncMiddleware(cacheRoute(ROUTE_CACHE_LIFETIME.FEEDS)), + commonVideosFiltersValidator, asyncMiddleware(videoFeedsValidator), asyncMiddleware(generateVideoFeed) ) @@ -46,10 +56,12 @@ async function generateVideoCommentsFeed (req: express.Request, res: express.Res // Adding video items to the feed, one at a time comments.forEach(comment => { + const link = CONFIG.WEBSERVER.URL + '/videos/watch/' + comment.Video.uuid + ';threadId=' + comment.getThreadId() + feed.addItem({ title: `${comment.Video.name} - ${comment.Account.getDisplayName()}`, id: comment.url, - link: comment.url, + link, content: comment.text, author: [ { @@ -70,7 +82,7 @@ async function generateVideoFeed (req: express.Request, res: express.Response, n const account: AccountModel = res.locals.account const videoChannel: VideoChannelModel = res.locals.videoChannel - const hideNSFW = CONFIG.INSTANCE.DEFAULT_NSFW_POLICY === 'do_not_list' + const nsfw = buildNSFWFilter(res, req.query.nsfw) let name: string let description: string @@ -92,7 +104,8 @@ async function generateVideoFeed (req: express.Request, res: express.Response, n start, count: FEEDS.COUNT, sort: req.query.sort, - hideNSFW, + includeLocalVideos: true, + nsfw, filter: req.query.filter, withFiles: true, accountId: account ? account.id : null, @@ -111,7 +124,7 @@ async function generateVideoFeed (req: express.Request, res: express.Response, n feed.addItem({ title: video.name, id: video.url, - link: video.url, + link: CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid, description: video.getTruncatedDescription(), content: video.description, author: [ @@ -123,7 +136,14 @@ async function generateVideoFeed (req: express.Request, res: express.Response, n date: video.publishedAt, language: video.language, nsfw: video.nsfw, - torrent: torrents + torrent: torrents, + thumbnail: [ + { + url: CONFIG.WEBSERVER.URL + video.getThumbnailStaticPath(), + height: THUMBNAILS_SIZE.height, + width: THUMBNAILS_SIZE.width + } + ] }) })