import { NSFWPolicyType } from '../videos/nsfw-policy.type'
+import { BroadcastMessageLevel } from './broadcast-message-level.type'
+
+export type ConfigResolutions = {
+ '240p': boolean
+ '360p': boolean
+ '480p': boolean
+ '720p': boolean
+ '1080p': boolean
+ '1440p': boolean
+ '2160p': boolean
+}
export interface CustomConfig {
instance: {
terms: string
codeOfConduct: string
+ creationReason: string
moderationInformation: string
administrator: string
maintenanceLifetime: string
businessModel: string
+ hardwareInformation: string
languages: string[]
categories: number[]
transcoding: {
enabled: boolean
+
allowAdditionalExtensions: boolean
allowAudioFiles: boolean
+
threads: number
- resolutions: {
- '240p': boolean
- '360p': boolean
- '480p': boolean
- '720p': boolean
- '1080p': boolean
- '2160p': boolean
+ resolutions: ConfigResolutions & { '0p': boolean }
+
+ webtorrent: {
+ enabled: boolean
}
+
hls: {
enabled: boolean
}
}
+ live: {
+ enabled: boolean
+
+ allowReplay: boolean
+
+ maxDuration: number
+ maxInstanceLives: number
+ maxUserLives: number
+
+ transcoding: {
+ enabled: boolean
+ threads: number
+ resolutions: ConfigResolutions
+ }
+ }
+
import: {
videos: {
http: {
enabled: boolean
- },
+ }
torrent: {
enabled: boolean
}
followers: {
instance: {
- enabled: boolean,
+ enabled: boolean
manualApproval: boolean
}
}
}
}
}
+
+ broadcastMessage: {
+ enabled: boolean
+ message: string
+ level: BroadcastMessageLevel
+ dismissable: boolean
+ }
+
+ search: {
+ remoteUri: {
+ users: boolean
+ anonymous: boolean
+ }
+
+ searchIndex: {
+ enabled: boolean
+ url: string
+ disableLocalSearch: boolean
+ isDefaultSearch: boolean
+ }
+ }
}