]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add ability to set default feed items count
authorChocobozzz <me@florianbigard.com>
Tue, 24 May 2022 13:56:23 +0000 (15:56 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 24 May 2022 13:56:23 +0000 (15:56 +0200)
config/default.yaml
config/production.yaml.example
server/controllers/feeds.ts
server/initializers/config.ts
server/initializers/constants.ts

index c3e42350b7b6d2f9d169dc00c6c7e32d8e5e5f7e..c0d17decfbcd1cedb752c7143cc093a3b3eb4633 100644 (file)
@@ -297,6 +297,16 @@ webadmin:
       # Set this to false if you don't want to allow config edition in the web interface by instance admins
       allowed: true
 
+# XML, Atom or JSON feeds
+feeds:
+  videos:
+    # Default number of videos displayed in feeds
+    count: 20
+
+  comments:
+    # Default number of comments displayed in feeds
+    count: 20
+
 cache:
   previews:
     size: 500 # Max number of previews you want to cache
index 4351a4b87a80acb32cb32e710777e6579d10d096..8fd8d805f0c605c38620409688a69fa51f5b6746 100644 (file)
@@ -293,15 +293,25 @@ webadmin:
       # Set this to false if you don't want to allow config edition in the web interface by instance admins
       allowed: true
 
+# XML, Atom or JSON feeds
+feeds:
+  videos:
+    # Default number of videos displayed in feeds
+    count: 20
+
+  comments:
+    # Default number of comments displayed in feeds
+    count: 20
+
 ###############################################################################
 #
-# From this point, all the following keys can be overridden by the web interface
+# From this point, almost all following keys can be overridden by the web interface
 # (local-production.json file). If you need to change some values, prefer to
 # use the web interface because the configuration will be automatically
 # reloaded without any need to restart PeerTube
 #
-# /!\ If you already have a local-production.json file, the modification of the
-# following keys will have no effect /!\
+# /!\ If you already have a local-production.json file, modification of some of
+# the following keys will have no effect /!\
 #
 ###############################################################################
 
index c929a6726c02a2ba72a69691e941bbb90e4cde5d..9eb31ed938643742fd6ac230fb0d282cacb28635 100644 (file)
@@ -1,13 +1,13 @@
 import express from 'express'
-import { Feed } from '@peertube/feed'
 import { extname } from 'path'
+import { Feed } from '@peertube/feed'
 import { mdToOneLinePlainText, toSafeHtml } from '@server/helpers/markdown'
 import { getServerActor } from '@server/models/application/application'
 import { getCategoryLabel } from '@server/models/video/formatter/video-format-utils'
 import { VideoInclude } from '@shared/models'
 import { buildNSFWFilter } from '../helpers/express-utils'
 import { CONFIG } from '../initializers/config'
-import { FEEDS, MIMETYPES, PREVIEWS_SIZE, ROUTE_CACHE_LIFETIME, WEBSERVER } from '../initializers/constants'
+import { MIMETYPES, PREVIEWS_SIZE, ROUTE_CACHE_LIFETIME, WEBSERVER } from '../initializers/constants'
 import {
   asyncMiddleware,
   commonVideosFiltersValidator,
@@ -76,7 +76,7 @@ async function generateVideoCommentsFeed (req: express.Request, res: express.Res
 
   const comments = await VideoCommentModel.listForFeed({
     start,
-    count: FEEDS.COUNT,
+    count: CONFIG.FEEDS.COMMENTS.COUNT,
     videoId: video ? video.id : undefined,
     accountId: account ? account.id : undefined,
     videoChannelId: videoChannel ? videoChannel.id : undefined
@@ -166,7 +166,7 @@ async function generateVideoFeed (req: express.Request, res: express.Response) {
   const server = await getServerActor()
   const { data } = await VideoModel.listForApi({
     start,
-    count: FEEDS.COUNT,
+    count: CONFIG.FEEDS.VIDEOS.COUNT,
     sort: req.query.sort,
     displayOnlyForFollower: {
       actorId: server.id,
@@ -202,7 +202,7 @@ async function generateVideoFeedForSubscriptions (req: express.Request, res: exp
 
   const { data } = await VideoModel.listForApi({
     start,
-    count: FEEDS.COUNT,
+    count: CONFIG.FEEDS.VIDEOS.COUNT,
     sort: req.query.sort,
     nsfw,
 
index 2f59e3e3e2ef8b7dec3cea039478a4985cac41ad..c76a839bc76f6b58c9c49b0df69d19572cba72eb 100644 (file)
@@ -247,6 +247,14 @@ const CONFIG = {
       }
     }
   },
+  FEEDS: {
+    VIDEOS: {
+      COUNT: config.get<number>('feeds.videos.count')
+    },
+    COMMENTS: {
+      COUNT: config.get<number>('feeds.comments.count')
+    }
+  },
   ADMIN: {
     get EMAIL () { return config.get<string>('admin.email') }
   },
index 231b8682158f69495973ba41950a5131dcc67bd8..824a30bd2f182ee727890035ed333894139f5110 100644 (file)
@@ -766,12 +766,6 @@ const CUSTOM_HTML_TAG_COMMENTS = {
   SERVER_CONFIG: '<!-- server config -->'
 }
 
-// ---------------------------------------------------------------------------
-
-const FEEDS = {
-  COUNT: 20
-}
-
 const MAX_LOGS_OUTPUT_CHARACTERS = 10 * 1000 * 1000
 const LOG_FILENAME = 'peertube.log'
 const AUDIT_LOG_FILENAME = 'peertube-audit.log'
@@ -939,7 +933,6 @@ export {
   ROUTE_CACHE_LIFETIME,
   SORTABLE_COLUMNS,
   HLS_STREAMING_PLAYLIST_DIRECTORY,
-  FEEDS,
   JOB_TTL,
   DEFAULT_THEME_NAME,
   NSFW_POLICY_TYPES,