X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fserver-config-manager.ts;h=78a9546ae6e85afdb5e89e9f5db3ff276d118c3c;hb=97922ecf640eb449f0664f23f9f69eeb4d9f5cd9;hp=58a37b56c95f07dad53a66af19eef227351d383d;hpb=80dea8f4d6293f8da72483ddb295e92d0b53b42f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/server-config-manager.ts b/server/lib/server-config-manager.ts index 58a37b56c..78a9546ae 100644 --- a/server/lib/server-config-manager.ts +++ b/server/lib/server-config-manager.ts @@ -1,13 +1,14 @@ -import { getServerCommit } from '@server/helpers/utils' +import { getServerCommit } from '@server/helpers/version' import { CONFIG, isEmailEnabled } from '@server/initializers/config' import { CONSTRAINTS_FIELDS, DEFAULT_THEME_NAME, PEERTUBE_VERSION } from '@server/initializers/constants' import { isSignupAllowed, isSignupAllowedForCurrentIP } from '@server/lib/signup' import { ActorCustomPageModel } from '@server/models/account/actor-custom-page' +import { PluginModel } from '@server/models/server/plugin' import { HTMLServerConfig, RegisteredExternalAuthConfig, RegisteredIdAndPassAuthConfig, ServerConfig } from '@shared/models' import { Hooks } from './plugins/hooks' import { PluginManager } from './plugins/plugin-manager' import { getThemeOrDefault } from './plugins/theme-utils' -import { VideoTranscodingProfilesManager } from './transcoding/video-transcoding-profiles' +import { VideoTranscodingProfilesManager } from './transcoding/default-transcoding-profiles' /** * @@ -42,14 +43,48 @@ class ServerConfigManager { const defaultTheme = getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) return { - allowEdits: CONFIG.WEBADMIN.CONFIGURATION.EDITS.ALLOWED, client: { videos: { miniature: { + displayAuthorAvatar: CONFIG.CLIENT.VIDEOS.MINIATURE.DISPLAY_AUTHOR_AVATAR, preferAuthorDisplayName: CONFIG.CLIENT.VIDEOS.MINIATURE.PREFER_AUTHOR_DISPLAY_NAME + }, + resumableUpload: { + maxChunkSize: CONFIG.CLIENT.VIDEOS.RESUMABLE_UPLOAD.MAX_CHUNK_SIZE + } + }, + menu: { + login: { + redirectOnSingleExternalAuth: CONFIG.CLIENT.MENU.LOGIN.REDIRECT_ON_SINGLE_EXTERNAL_AUTH + } + } + }, + + defaults: { + publish: { + downloadEnabled: CONFIG.DEFAULTS.PUBLISH.DOWNLOAD_ENABLED, + commentsEnabled: CONFIG.DEFAULTS.PUBLISH.COMMENTS_ENABLED, + privacy: CONFIG.DEFAULTS.PUBLISH.PRIVACY, + licence: CONFIG.DEFAULTS.PUBLISH.LICENCE + }, + p2p: { + webapp: { + enabled: CONFIG.DEFAULTS.P2P.WEBAPP.ENABLED + }, + embed: { + enabled: CONFIG.DEFAULTS.P2P.EMBED.ENABLED } } }, + + webadmin: { + configuration: { + edition: { + allowed: CONFIG.WEBADMIN.CONFIGURATION.EDITION.ALLOWED + } + } + }, + instance: { name: CONFIG.INSTANCE.NAME, shortDescription: CONFIG.INSTANCE.SHORT_DESCRIPTION, @@ -105,6 +140,10 @@ class ServerConfigManager { enabled: CONFIG.LIVE.ENABLED, allowReplay: CONFIG.LIVE.ALLOW_REPLAY, + latencySetting: { + enabled: CONFIG.LIVE.LATENCY_SETTING.ENABLED + }, + maxDuration: CONFIG.LIVE.MAX_DURATION, maxInstanceLives: CONFIG.LIVE.MAX_INSTANCE_LIVES, maxUserLives: CONFIG.LIVE.MAX_USER_LIVES, @@ -120,6 +159,9 @@ class ServerConfigManager { port: CONFIG.LIVE.RTMP.PORT } }, + videoStudio: { + enabled: CONFIG.VIDEO_STUDIO.ENABLED + }, import: { videos: { http: { @@ -128,6 +170,9 @@ class ServerConfigManager { torrent: { enabled: CONFIG.IMPORT.VIDEOS.TORRENT.ENABLED } + }, + videoChannelSynchronization: { + enabled: CONFIG.IMPORT.VIDEO_CHANNEL_SYNCHRONIZATION.ENABLED } }, autoBlacklist: { @@ -176,6 +221,9 @@ class ServerConfigManager { videoQuota: CONFIG.USER.VIDEO_QUOTA, videoQuotaDaily: CONFIG.USER.VIDEO_QUOTA_DAILY }, + videoChannels: { + maxPerUser: CONFIG.VIDEO_CHANNELS.MAX_PER_USER + }, trending: { videos: { intervalDays: CONFIG.TRENDING.VIDEOS.INTERVAL_DAYS, @@ -236,6 +284,7 @@ class ServerConfigManager { getRegisteredThemes () { return PluginManager.Instance.getRegisteredThemes() .map(t => ({ + npmName: PluginModel.buildNpmName(t.name, t.type), name: t.name, version: t.version, description: t.description, @@ -247,6 +296,7 @@ class ServerConfigManager { getRegisteredPlugins () { return PluginManager.Instance.getRegisteredPlugins() .map(p => ({ + npmName: PluginModel.buildNpmName(p.name, p.type), name: p.name, version: p.version, description: p.description,