X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Ffeeds.ts;h=ece5dc067b17266dde84c96ad4506e742f6f00a3;hb=3d5de919f382bb86b00678530ee22ae52c2add6b;hp=c928dfacb4282abaeb7efc9f066f9e952153c897;hpb=fe3a55b071c99b346e9e9ab786f5d219e5a064cd;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/feeds.ts b/server/controllers/feeds.ts index c928dfacb..ece5dc067 100644 --- a/server/controllers/feeds.ts +++ b/server/controllers/feeds.ts @@ -1,6 +1,6 @@ import * as express from 'express' import { CONFIG, FEEDS, ROUTE_CACHE_LIFETIME } from '../initializers/constants' -import { asyncMiddleware, videoFeedsValidator, setDefaultSort, videosSortValidator, videoCommentsFeedsValidator } from '../middlewares' +import { asyncMiddleware, setDefaultSort, videoCommentsFeedsValidator, videoFeedsValidator, videosSortValidator } from '../middlewares' import { VideoModel } from '../models/video/video' import * as Feed from 'pfeed' import { AccountModel } from '../models/account/account' @@ -33,13 +33,17 @@ export { // --------------------------------------------------------------------------- async function generateVideoCommentsFeed (req: express.Request, res: express.Response, next: express.NextFunction) { - let feed = initFeed() const start = 0 - const videoId: number = res.locals.video ? res.locals.video.id : undefined + const video = res.locals.video as VideoModel + const videoId: number = video ? video.id : undefined const comments = await VideoCommentModel.listForFeed(start, FEEDS.COUNT, videoId) + const name = video ? video.name : CONFIG.INSTANCE.NAME + const description = video ? video.description : CONFIG.INSTANCE.DESCRIPTION + const feed = initFeed(name, description) + // Adding video items to the feed, one at a time comments.forEach(comment => { feed.addItem({ @@ -62,13 +66,28 @@ async function generateVideoCommentsFeed (req: express.Request, res: express.Res } async function generateVideoFeed (req: express.Request, res: express.Response, next: express.NextFunction) { - let feed = initFeed() const start = 0 const account: AccountModel = res.locals.account const videoChannel: VideoChannelModel = res.locals.videoChannel const hideNSFW = CONFIG.INSTANCE.DEFAULT_NSFW_POLICY === 'do_not_list' + let name: string + let description: string + + if (videoChannel) { + name = videoChannel.getDisplayName() + description = videoChannel.description + } else if (account) { + name = account.getDisplayName() + description = account.description + } else { + name = CONFIG.INSTANCE.NAME + description = CONFIG.INSTANCE.DESCRIPTION + } + + const feed = initFeed(name, description) + const resultList = await VideoModel.listForApi({ start, count: FEEDS.COUNT, @@ -112,12 +131,12 @@ async function generateVideoFeed (req: express.Request, res: express.Response, n return sendFeed(feed, req, res) } -function initFeed () { +function initFeed (name: string, description: string) { const webserverUrl = CONFIG.WEBSERVER.URL return new Feed({ - title: CONFIG.INSTANCE.NAME, - description: CONFIG.INSTANCE.DESCRIPTION, + title: name, + description, // updated: TODO: somehowGetLatestUpdate, // optional, default = today id: webserverUrl, link: webserverUrl,