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 {
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'
*/
// 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,
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',
}
},
plugin: {
- registered: getRegisteredPlugins()
+ registered: ServerConfigManager.Instance.getRegisteredPlugins()
},
theme: {
- registered: getRegisteredThemes(),
+ registered: ServerConfigManager.Instance.getRegisteredThemes(),
default: getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME)
},
email: {
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: {
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: {
}
} 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) {