X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fserver%2Fserver-config.model.ts;h=2dcf98f4f3183891c4331c5c644621062fb4888a;hb=3b01f4c0ac764ecb70efaadfd939ca868c28769c;hp=2cafedbbc7a59bf065088f0d716a37e14821c241;hpb=b2977eecb8eb5d599df0c6a7ab99a437a6a969c7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts index 2cafedbbc..2dcf98f4f 100644 --- a/shared/models/server/server-config.model.ts +++ b/shared/models/server/server-config.model.ts @@ -1,12 +1,43 @@ +import { ClientScript } from '../plugins/plugin-package-json.model' import { NSFWPolicyType } from '../videos/nsfw-policy.type' +import { BroadcastMessageLevel } from './broadcast-message-level.type' + +export interface ServerConfigPlugin { + name: string + version: string + description: string + clientScripts: { [name: string]: ClientScript } +} + +export interface ServerConfigTheme extends ServerConfigPlugin { + css: string[] +} + +export interface RegisteredExternalAuthConfig { + npmName: string + name: string + version: string + authName: string + authDisplayName: string +} + +export interface RegisteredIdAndPassAuthConfig { + npmName: string + name: string + version: string + authName: string + weight: number +} export interface ServerConfig { serverVersion: string + serverCommit?: string instance: { name: string shortDescription: string defaultClientRoute: string + isNSFW: boolean defaultNSFWPolicy: NSFWPolicyType customizations: { javascript: string @@ -14,20 +45,94 @@ export interface ServerConfig { } } + search: { + remoteUri: { + users: boolean + anonymous: boolean + } + + searchIndex: { + enabled: boolean + url: string + disableLocalSearch: boolean + isDefaultSearch: boolean + } + } + + plugin: { + registered: ServerConfigPlugin[] + + registeredExternalAuths: RegisteredExternalAuthConfig[] + + registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[] + } + + theme: { + registered: ServerConfigTheme[] + default: string + } + + email: { + enabled: boolean + } + + contactForm: { + enabled: boolean + } + signup: { - allowed: boolean, + allowed: boolean allowedForCurrentIP: boolean + requiresEmailVerification: boolean } transcoding: { + hls: { + enabled: boolean + } + + webtorrent: { + enabled: boolean + } + enabledResolutions: number[] } + live: { + enabled: boolean + + maxDuration: number + maxInstanceLives: number + maxUserLives: number + allowReplay: boolean + + transcoding: { + enabled: boolean + + enabledResolutions: number[] + } + + rtmp: { + port: number + } + } + import: { videos: { http: { enabled: boolean } + torrent: { + enabled: boolean + } + } + } + + autoBlacklist: { + videos: { + ofUsers: { + enabled: boolean + } } } @@ -35,7 +140,7 @@ export interface ServerConfig { file: { size: { max: number - }, + } extensions: string[] } } @@ -46,7 +151,7 @@ export interface ServerConfig { max: number } extensions: string[] - }, + } file: { extensions: string[] } @@ -56,12 +161,38 @@ export interface ServerConfig { file: { size: { max: number - }, + } extensions: string[] } } user: { videoQuota: number + videoQuotaDaily: number + } + + trending: { + videos: { + intervalDays: number + } + } + + tracker: { + enabled: boolean + } + + followings: { + instance: { + autoFollowIndex: { + indexUrl: string + } + } + } + + broadcastMessage: { + enabled: boolean + message: string + level: BroadcastMessageLevel + dismissable: boolean } }