]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/static.ts
Move middleware utils in middlewares
[github/Chocobozzz/PeerTube.git] / server / controllers / static.ts
index 7cc7f2c62c2c7d18f7fb41d129a844f9f3c093aa..52e10434683f30089fc31b42d8ff9d56e5c83d0f 100644 (file)
@@ -1,10 +1,10 @@
 import * as cors from 'cors'
 import * as express from 'express'
 import { join } from 'path'
-import { getRegisteredPlugins, getRegisteredThemes } from '@server/controllers/api/config'
 import { serveIndexHTML } from '@server/lib/client-html'
+import { ServerConfigManager } from '@server/lib/server-config-manager'
 import { HttpStatusCode } from '@shared/core-utils/miscs/http-error-codes'
-import { HttpNodeinfoDiasporaSoftwareNsSchema20 } from '../../shared/models/nodeinfo'
+import { HttpNodeinfoDiasporaSoftwareNsSchema20 } from '../../shared/models/nodeinfo/nodeinfo.model'
 import { root } from '../helpers/core-utils'
 import { CONFIG, isEmailEnabled } from '../initializers/config'
 import {
@@ -18,10 +18,9 @@ import {
   WEBSERVER
 } from '../initializers/constants'
 import { getThemeOrDefault } from '../lib/plugins/theme-utils'
-import { getEnabledResolutions } from '../lib/video-transcoding'
 import { asyncMiddleware } from '../middlewares'
 import { cacheRoute } from '../middlewares/cache'
-import { UserModel } from '../models/account/user'
+import { UserModel } from '../models/user/user'
 import { VideoModel } from '../models/video/video'
 import { VideoCommentModel } from '../models/video/video-comment'
 
@@ -34,6 +33,7 @@ staticRouter.use(cors())
 */
 
 // FIXME: deprecated in 3.2, use lazy-statics instead
+// Due to historical reasons, we can't really remove this controller
 const torrentsPhysicalPath = CONFIG.STORAGE.TORRENTS_DIR
 staticRouter.use(
   STATIC_PATHS.TORRENTS,
@@ -160,10 +160,9 @@ async function generateNodeinfo (req: express.Request, res: express.Response) {
   const { totalVideos } = await VideoModel.getStats()
   const { totalLocalVideoComments } = await VideoCommentModel.getStats()
   const { totalUsers, totalMonthlyActiveUsers, totalHalfYearActiveUsers } = await UserModel.getStats()
-  let json = {}
 
   if (req.params.version && (req.params.version === '2.0')) {
-    json = {
+    const json = {
       version: '2.0',
       software: {
         name: 'peertube',
@@ -203,10 +202,10 @@ async function generateNodeinfo (req: express.Request, res: express.Response) {
             }
           },
           plugin: {
-            registered: getRegisteredPlugins()
+            registered: ServerConfigManager.Instance.getRegisteredPlugins()
           },
           theme: {
-            registered: getRegisteredThemes(),
+            registered: ServerConfigManager.Instance.getRegisteredThemes(),
             default: getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME)
           },
           email: {
@@ -222,13 +221,13 @@ async function generateNodeinfo (req: express.Request, res: express.Response) {
             webtorrent: {
               enabled: CONFIG.TRANSCODING.WEBTORRENT.ENABLED
             },
-            enabledResolutions: getEnabledResolutions('vod')
+            enabledResolutions: ServerConfigManager.Instance.getEnabledResolutions('vod')
           },
           live: {
             enabled: CONFIG.LIVE.ENABLED,
             transcoding: {
               enabled: CONFIG.LIVE.TRANSCODING.ENABLED,
-              enabledResolutions: getEnabledResolutions('live')
+              enabledResolutions: ServerConfigManager.Instance.getEnabledResolutions('live')
             }
           },
           import: {
@@ -251,9 +250,9 @@ async function generateNodeinfo (req: express.Request, res: express.Response) {
           avatar: {
             file: {
               size: {
-                max: CONSTRAINTS_FIELDS.ACTORS.AVATAR.FILE_SIZE.max
+                max: CONSTRAINTS_FIELDS.ACTORS.IMAGE.FILE_SIZE.max
               },
-              extensions: CONSTRAINTS_FIELDS.ACTORS.AVATAR.EXTNAME
+              extensions: CONSTRAINTS_FIELDS.ACTORS.IMAGE.EXTNAME
             }
           },
           video: {
@@ -291,12 +290,14 @@ async function generateNodeinfo (req: express.Request, res: express.Response) {
       }
     } as HttpNodeinfoDiasporaSoftwareNsSchema20
     res.contentType('application/json; profile="http://nodeinfo.diaspora.software/ns/schema/2.0#"')
-  } else {
-    json = { error: 'Nodeinfo schema version not handled' }
-    res.status(HttpStatusCode.NOT_FOUND_404)
+       .send(json)
+       .end()
   }
 
-  return res.send(json).end()
+  return res.fail({
+    status: HttpStatusCode.NOT_FOUND_404,
+    message: 'Nodeinfo schema version not handled'
+  })
 }
 
 function getCup (req: express.Request, res: express.Response, next: express.NextFunction) {