X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fserver-commands%2Fserver%2Fconfig-command.ts;h=b94bd2625a9cefea6b01def9c5a20c32f90d03e6;hb=cb0eda5602a21d1626a7face32de6153ed07b5f9;hp=1dd6e1ea4bda766180007841b5c0224305bb5d93;hpb=2769876fb26742f5cc8aa4b761be7bafca97d18d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/server-commands/server/config-command.ts b/shared/server-commands/server/config-command.ts index 1dd6e1ea4..b94bd2625 100644 --- a/shared/server-commands/server/config-command.ts +++ b/shared/server-commands/server/config-command.ts @@ -5,8 +5,9 @@ import { AbstractCommand, OverrideCommandOptions } from '../shared/abstract-comm export class ConfigCommand extends AbstractCommand { - static getCustomConfigResolutions (enabled: boolean) { + static getCustomConfigResolutions (enabled: boolean, with0p = false) { return { + '0p': enabled && with0p, '144p': enabled, '240p': enabled, '360p': enabled, @@ -18,17 +19,52 @@ export class ConfigCommand extends AbstractCommand { } } + // --------------------------------------------------------------------------- + + static getEmailOverrideConfig (emailPort: number) { + return { + smtp: { + hostname: '127.0.0.1', + port: emailPort + } + } + } + + // --------------------------------------------------------------------------- + + enableSignup (requiresApproval: boolean, limit = -1) { + return this.updateExistingSubConfig({ + newConfig: { + signup: { + enabled: true, + requiresApproval, + limit + } + } + }) + } + + // --------------------------------------------------------------------------- + + disableImports () { + return this.setImportsEnabled(false) + } + enableImports () { + return this.setImportsEnabled(true) + } + + private setImportsEnabled (enabled: boolean) { return this.updateExistingSubConfig({ newConfig: { import: { videos: { http: { - enabled: true + enabled }, torrent: { - enabled: true + enabled } } } @@ -36,18 +72,45 @@ export class ConfigCommand extends AbstractCommand { }) } + // --------------------------------------------------------------------------- + + enableChannelSync () { + return this.setChannelSyncEnabled(true) + } + + disableChannelSync () { + return this.setChannelSyncEnabled(false) + } + + private setChannelSyncEnabled (enabled: boolean) { + return this.updateExistingSubConfig({ + newConfig: { + import: { + videoChannelSynchronization: { + enabled + } + } + } + }) + } + + // --------------------------------------------------------------------------- + enableLive (options: { allowReplay?: boolean transcoding?: boolean + resolutions?: 'min' | 'max' // Default max } = {}) { + const { allowReplay, transcoding, resolutions = 'max' } = options + return this.updateExistingSubConfig({ newConfig: { live: { enabled: true, - allowReplay: options.allowReplay ?? true, + allowReplay: allowReplay ?? true, transcoding: { - enabled: options.transcoding ?? true, - resolutions: ConfigCommand.getCustomConfigResolutions(true) + enabled: transcoding ?? true, + resolutions: ConfigCommand.getCustomConfigResolutions(resolutions === 'max') } } } @@ -60,14 +123,15 @@ export class ConfigCommand extends AbstractCommand { transcoding: { enabled: false }, - videoEditor: { + videoStudio: { enabled: false } } }) } - enableTranscoding (webtorrent = true, hls = true) { + // TODO: convert args to object + enableTranscoding (webtorrent = true, hls = true, with0p = false) { return this.updateExistingSubConfig({ newConfig: { transcoding: { @@ -76,7 +140,7 @@ export class ConfigCommand extends AbstractCommand { allowAudioFiles: true, allowAdditionalExtensions: true, - resolutions: ConfigCommand.getCustomConfigResolutions(true), + resolutions: ConfigCommand.getCustomConfigResolutions(true, with0p), webtorrent: { enabled: webtorrent @@ -89,6 +153,7 @@ export class ConfigCommand extends AbstractCommand { }) } + // TODO: convert args to object enableMinimumTranscoding (webtorrent = true, hls = true) { return this.updateExistingSubConfig({ newConfig: { @@ -111,6 +176,51 @@ export class ConfigCommand extends AbstractCommand { }) } + enableRemoteTranscoding () { + return this.updateExistingSubConfig({ + newConfig: { + transcoding: { + remoteRunners: { + enabled: true + } + }, + live: { + transcoding: { + remoteRunners: { + enabled: true + } + } + } + } + }) + } + + enableRemoteStudio () { + return this.updateExistingSubConfig({ + newConfig: { + videoStudio: { + remoteRunners: { + enabled: true + } + } + } + }) + } + + // --------------------------------------------------------------------------- + + enableStudio () { + return this.updateExistingSubConfig({ + newConfig: { + videoStudio: { + enabled: true + } + } + }) + } + + // --------------------------------------------------------------------------- + getConfig (options: OverrideCommandOptions = {}) { const path = '/api/v1/config' @@ -263,6 +373,7 @@ export class ConfigCommand extends AbstractCommand { signup: { enabled: false, limit: 5, + requiresApproval: true, requiresEmailVerification: false, minimumAge: 16 }, @@ -273,6 +384,11 @@ export class ConfigCommand extends AbstractCommand { enabled: true }, user: { + history: { + videos: { + enabled: true + } + }, videoQuota: 5242881, videoQuotaDaily: 318742 }, @@ -281,6 +397,9 @@ export class ConfigCommand extends AbstractCommand { }, transcoding: { enabled: true, + remoteRunners: { + enabled: false + }, allowAdditionalExtensions: true, allowAudioFiles: true, threads: 1, @@ -297,6 +416,7 @@ export class ConfigCommand extends AbstractCommand { '1440p': false, '2160p': false }, + alwaysTranscodeOriginalResolution: true, webtorrent: { enabled: true }, @@ -315,6 +435,9 @@ export class ConfigCommand extends AbstractCommand { maxUserLives: 50, transcoding: { enabled: true, + remoteRunners: { + enabled: false + }, threads: 4, profile: 'default', resolutions: { @@ -326,11 +449,15 @@ export class ConfigCommand extends AbstractCommand { '1080p': true, '1440p': true, '2160p': true - } + }, + alwaysTranscodeOriginalResolution: true } }, - videoEditor: { - enabled: false + videoStudio: { + enabled: false, + remoteRunners: { + enabled: false + } }, import: { videos: { @@ -341,12 +468,16 @@ export class ConfigCommand extends AbstractCommand { torrent: { enabled: false } + }, + videoChannelSynchronization: { + enabled: false, + maxPerUser: 10 } }, trending: { videos: { algorithms: { - enabled: [ 'best', 'hot', 'most-viewed', 'most-liked' ], + enabled: [ 'hot', 'most-viewed', 'most-liked' ], default: 'hot' } }