]>
Commit | Line | Data |
---|---|---|
1 | import { NSFWPolicyType } from '../videos/nsfw-policy.type' | |
2 | import { BroadcastMessageLevel } from './broadcast-message-level.type' | |
3 | ||
4 | export type ConfigResolutions = { | |
5 | '144p': boolean | |
6 | '240p': boolean | |
7 | '360p': boolean | |
8 | '480p': boolean | |
9 | '720p': boolean | |
10 | '1080p': boolean | |
11 | '1440p': boolean | |
12 | '2160p': boolean | |
13 | } | |
14 | ||
15 | export interface CustomConfig { | |
16 | instance: { | |
17 | name: string | |
18 | shortDescription: string | |
19 | description: string | |
20 | terms: string | |
21 | codeOfConduct: string | |
22 | ||
23 | creationReason: string | |
24 | moderationInformation: string | |
25 | administrator: string | |
26 | maintenanceLifetime: string | |
27 | businessModel: string | |
28 | hardwareInformation: string | |
29 | ||
30 | languages: string[] | |
31 | categories: number[] | |
32 | ||
33 | isNSFW: boolean | |
34 | defaultNSFWPolicy: NSFWPolicyType | |
35 | ||
36 | defaultClientRoute: string | |
37 | ||
38 | customizations: { | |
39 | javascript?: string | |
40 | css?: string | |
41 | } | |
42 | } | |
43 | ||
44 | theme: { | |
45 | default: string | |
46 | } | |
47 | ||
48 | services: { | |
49 | twitter: { | |
50 | username: string | |
51 | whitelisted: boolean | |
52 | } | |
53 | } | |
54 | ||
55 | client: { | |
56 | videos: { | |
57 | miniature: { | |
58 | preferAuthorDisplayName: boolean | |
59 | } | |
60 | } | |
61 | ||
62 | menu: { | |
63 | login: { | |
64 | redirectOnSingleExternalAuth: boolean | |
65 | } | |
66 | } | |
67 | } | |
68 | ||
69 | cache: { | |
70 | previews: { | |
71 | size: number | |
72 | } | |
73 | ||
74 | captions: { | |
75 | size: number | |
76 | } | |
77 | ||
78 | torrents: { | |
79 | size: number | |
80 | } | |
81 | } | |
82 | ||
83 | signup: { | |
84 | enabled: boolean | |
85 | limit: number | |
86 | requiresApproval: boolean | |
87 | requiresEmailVerification: boolean | |
88 | minimumAge: number | |
89 | } | |
90 | ||
91 | admin: { | |
92 | email: string | |
93 | } | |
94 | ||
95 | contactForm: { | |
96 | enabled: boolean | |
97 | } | |
98 | ||
99 | user: { | |
100 | history: { | |
101 | videos: { | |
102 | enabled: boolean | |
103 | } | |
104 | } | |
105 | videoQuota: number | |
106 | videoQuotaDaily: number | |
107 | } | |
108 | ||
109 | videoChannels: { | |
110 | maxPerUser: number | |
111 | } | |
112 | ||
113 | transcoding: { | |
114 | enabled: boolean | |
115 | ||
116 | allowAdditionalExtensions: boolean | |
117 | allowAudioFiles: boolean | |
118 | ||
119 | remoteRunners: { | |
120 | enabled: boolean | |
121 | } | |
122 | ||
123 | threads: number | |
124 | concurrency: number | |
125 | ||
126 | profile: string | |
127 | ||
128 | resolutions: ConfigResolutions & { '0p': boolean } | |
129 | ||
130 | alwaysTranscodeOriginalResolution: boolean | |
131 | ||
132 | webtorrent: { | |
133 | enabled: boolean | |
134 | } | |
135 | ||
136 | hls: { | |
137 | enabled: boolean | |
138 | } | |
139 | } | |
140 | ||
141 | live: { | |
142 | enabled: boolean | |
143 | ||
144 | allowReplay: boolean | |
145 | ||
146 | latencySetting: { | |
147 | enabled: boolean | |
148 | } | |
149 | ||
150 | maxDuration: number | |
151 | maxInstanceLives: number | |
152 | maxUserLives: number | |
153 | ||
154 | transcoding: { | |
155 | enabled: boolean | |
156 | remoteRunners: { | |
157 | enabled: boolean | |
158 | } | |
159 | threads: number | |
160 | profile: string | |
161 | resolutions: ConfigResolutions | |
162 | alwaysTranscodeOriginalResolution: boolean | |
163 | } | |
164 | } | |
165 | ||
166 | videoStudio: { | |
167 | enabled: boolean | |
168 | ||
169 | remoteRunners: { | |
170 | enabled: boolean | |
171 | } | |
172 | } | |
173 | ||
174 | import: { | |
175 | videos: { | |
176 | concurrency: number | |
177 | ||
178 | http: { | |
179 | enabled: boolean | |
180 | } | |
181 | torrent: { | |
182 | enabled: boolean | |
183 | } | |
184 | } | |
185 | videoChannelSynchronization: { | |
186 | enabled: boolean | |
187 | maxPerUser: number | |
188 | } | |
189 | } | |
190 | ||
191 | trending: { | |
192 | videos: { | |
193 | algorithms: { | |
194 | enabled: string[] | |
195 | default: string | |
196 | } | |
197 | } | |
198 | } | |
199 | ||
200 | autoBlacklist: { | |
201 | videos: { | |
202 | ofUsers: { | |
203 | enabled: boolean | |
204 | } | |
205 | } | |
206 | } | |
207 | ||
208 | followers: { | |
209 | instance: { | |
210 | enabled: boolean | |
211 | manualApproval: boolean | |
212 | } | |
213 | } | |
214 | ||
215 | followings: { | |
216 | instance: { | |
217 | autoFollowBack: { | |
218 | enabled: boolean | |
219 | } | |
220 | ||
221 | autoFollowIndex: { | |
222 | enabled: boolean | |
223 | indexUrl: string | |
224 | } | |
225 | } | |
226 | } | |
227 | ||
228 | broadcastMessage: { | |
229 | enabled: boolean | |
230 | message: string | |
231 | level: BroadcastMessageLevel | |
232 | dismissable: boolean | |
233 | } | |
234 | ||
235 | search: { | |
236 | remoteUri: { | |
237 | users: boolean | |
238 | anonymous: boolean | |
239 | } | |
240 | ||
241 | searchIndex: { | |
242 | enabled: boolean | |
243 | url: string | |
244 | disableLocalSearch: boolean | |
245 | isDefaultSearch: boolean | |
246 | } | |
247 | } | |
248 | ||
249 | } |