diff options
Diffstat (limited to 'shared/models/server')
-rw-r--r-- | shared/models/server/about.model.ts | 20 | ||||
-rw-r--r-- | shared/models/server/broadcast-message-level.type.ts | 1 | ||||
-rw-r--r-- | shared/models/server/client-log-create.model.ts | 11 | ||||
-rw-r--r-- | shared/models/server/client-log-level.type.ts | 1 | ||||
-rw-r--r-- | shared/models/server/contact-form.model.ts | 6 | ||||
-rw-r--r-- | shared/models/server/custom-config.model.ts | 259 | ||||
-rw-r--r-- | shared/models/server/debug.model.ts | 12 | ||||
-rw-r--r-- | shared/models/server/emailer.model.ts | 49 | ||||
-rw-r--r-- | shared/models/server/index.ts | 16 | ||||
-rw-r--r-- | shared/models/server/job.model.ts | 304 | ||||
-rw-r--r-- | shared/models/server/peertube-problem-document.model.ts | 32 | ||||
-rw-r--r-- | shared/models/server/server-config.model.ts | 305 | ||||
-rw-r--r-- | shared/models/server/server-debug.model.ts | 4 | ||||
-rw-r--r-- | shared/models/server/server-error-code.enum.ts | 89 | ||||
-rw-r--r-- | shared/models/server/server-follow-create.model.ts | 4 | ||||
-rw-r--r-- | shared/models/server/server-log-level.type.ts | 1 | ||||
-rw-r--r-- | shared/models/server/server-stats.model.ts | 47 |
17 files changed, 0 insertions, 1161 deletions
diff --git a/shared/models/server/about.model.ts b/shared/models/server/about.model.ts deleted file mode 100644 index 6d4ba63c4..000000000 --- a/shared/models/server/about.model.ts +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | export interface About { | ||
2 | instance: { | ||
3 | name: string | ||
4 | shortDescription: string | ||
5 | description: string | ||
6 | terms: string | ||
7 | |||
8 | codeOfConduct: string | ||
9 | hardwareInformation: string | ||
10 | |||
11 | creationReason: string | ||
12 | moderationInformation: string | ||
13 | administrator: string | ||
14 | maintenanceLifetime: string | ||
15 | businessModel: string | ||
16 | |||
17 | languages: string[] | ||
18 | categories: number[] | ||
19 | } | ||
20 | } | ||
diff --git a/shared/models/server/broadcast-message-level.type.ts b/shared/models/server/broadcast-message-level.type.ts deleted file mode 100644 index bf43e18b5..000000000 --- a/shared/models/server/broadcast-message-level.type.ts +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | export type BroadcastMessageLevel = 'info' | 'warning' | 'error' | ||
diff --git a/shared/models/server/client-log-create.model.ts b/shared/models/server/client-log-create.model.ts deleted file mode 100644 index c9dc65568..000000000 --- a/shared/models/server/client-log-create.model.ts +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | import { ClientLogLevel } from './client-log-level.type' | ||
2 | |||
3 | export interface ClientLogCreate { | ||
4 | message: string | ||
5 | url: string | ||
6 | level: ClientLogLevel | ||
7 | |||
8 | stackTrace?: string | ||
9 | userAgent?: string | ||
10 | meta?: string | ||
11 | } | ||
diff --git a/shared/models/server/client-log-level.type.ts b/shared/models/server/client-log-level.type.ts deleted file mode 100644 index 18dea2751..000000000 --- a/shared/models/server/client-log-level.type.ts +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | export type ClientLogLevel = 'warn' | 'error' | ||
diff --git a/shared/models/server/contact-form.model.ts b/shared/models/server/contact-form.model.ts deleted file mode 100644 index c23e6d1ba..000000000 --- a/shared/models/server/contact-form.model.ts +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | export interface ContactForm { | ||
2 | fromEmail: string | ||
3 | fromName: string | ||
4 | subject: string | ||
5 | body: string | ||
6 | } | ||
diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts deleted file mode 100644 index 0dbb46fa8..000000000 --- a/shared/models/server/custom-config.model.ts +++ /dev/null | |||
@@ -1,259 +0,0 @@ | |||
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 | storyboards: { | ||
83 | size: number | ||
84 | } | ||
85 | } | ||
86 | |||
87 | signup: { | ||
88 | enabled: boolean | ||
89 | limit: number | ||
90 | requiresApproval: boolean | ||
91 | requiresEmailVerification: boolean | ||
92 | minimumAge: number | ||
93 | } | ||
94 | |||
95 | admin: { | ||
96 | email: string | ||
97 | } | ||
98 | |||
99 | contactForm: { | ||
100 | enabled: boolean | ||
101 | } | ||
102 | |||
103 | user: { | ||
104 | history: { | ||
105 | videos: { | ||
106 | enabled: boolean | ||
107 | } | ||
108 | } | ||
109 | videoQuota: number | ||
110 | videoQuotaDaily: number | ||
111 | } | ||
112 | |||
113 | videoChannels: { | ||
114 | maxPerUser: number | ||
115 | } | ||
116 | |||
117 | transcoding: { | ||
118 | enabled: boolean | ||
119 | |||
120 | allowAdditionalExtensions: boolean | ||
121 | allowAudioFiles: boolean | ||
122 | |||
123 | remoteRunners: { | ||
124 | enabled: boolean | ||
125 | } | ||
126 | |||
127 | threads: number | ||
128 | concurrency: number | ||
129 | |||
130 | profile: string | ||
131 | |||
132 | resolutions: ConfigResolutions & { '0p': boolean } | ||
133 | |||
134 | alwaysTranscodeOriginalResolution: boolean | ||
135 | |||
136 | webVideos: { | ||
137 | enabled: boolean | ||
138 | } | ||
139 | |||
140 | hls: { | ||
141 | enabled: boolean | ||
142 | } | ||
143 | } | ||
144 | |||
145 | live: { | ||
146 | enabled: boolean | ||
147 | |||
148 | allowReplay: boolean | ||
149 | |||
150 | latencySetting: { | ||
151 | enabled: boolean | ||
152 | } | ||
153 | |||
154 | maxDuration: number | ||
155 | maxInstanceLives: number | ||
156 | maxUserLives: number | ||
157 | |||
158 | transcoding: { | ||
159 | enabled: boolean | ||
160 | remoteRunners: { | ||
161 | enabled: boolean | ||
162 | } | ||
163 | threads: number | ||
164 | profile: string | ||
165 | resolutions: ConfigResolutions | ||
166 | alwaysTranscodeOriginalResolution: boolean | ||
167 | } | ||
168 | } | ||
169 | |||
170 | videoStudio: { | ||
171 | enabled: boolean | ||
172 | |||
173 | remoteRunners: { | ||
174 | enabled: boolean | ||
175 | } | ||
176 | } | ||
177 | |||
178 | videoFile: { | ||
179 | update: { | ||
180 | enabled: boolean | ||
181 | } | ||
182 | } | ||
183 | |||
184 | import: { | ||
185 | videos: { | ||
186 | concurrency: number | ||
187 | |||
188 | http: { | ||
189 | enabled: boolean | ||
190 | } | ||
191 | torrent: { | ||
192 | enabled: boolean | ||
193 | } | ||
194 | } | ||
195 | videoChannelSynchronization: { | ||
196 | enabled: boolean | ||
197 | maxPerUser: number | ||
198 | } | ||
199 | } | ||
200 | |||
201 | trending: { | ||
202 | videos: { | ||
203 | algorithms: { | ||
204 | enabled: string[] | ||
205 | default: string | ||
206 | } | ||
207 | } | ||
208 | } | ||
209 | |||
210 | autoBlacklist: { | ||
211 | videos: { | ||
212 | ofUsers: { | ||
213 | enabled: boolean | ||
214 | } | ||
215 | } | ||
216 | } | ||
217 | |||
218 | followers: { | ||
219 | instance: { | ||
220 | enabled: boolean | ||
221 | manualApproval: boolean | ||
222 | } | ||
223 | } | ||
224 | |||
225 | followings: { | ||
226 | instance: { | ||
227 | autoFollowBack: { | ||
228 | enabled: boolean | ||
229 | } | ||
230 | |||
231 | autoFollowIndex: { | ||
232 | enabled: boolean | ||
233 | indexUrl: string | ||
234 | } | ||
235 | } | ||
236 | } | ||
237 | |||
238 | broadcastMessage: { | ||
239 | enabled: boolean | ||
240 | message: string | ||
241 | level: BroadcastMessageLevel | ||
242 | dismissable: boolean | ||
243 | } | ||
244 | |||
245 | search: { | ||
246 | remoteUri: { | ||
247 | users: boolean | ||
248 | anonymous: boolean | ||
249 | } | ||
250 | |||
251 | searchIndex: { | ||
252 | enabled: boolean | ||
253 | url: string | ||
254 | disableLocalSearch: boolean | ||
255 | isDefaultSearch: boolean | ||
256 | } | ||
257 | } | ||
258 | |||
259 | } | ||
diff --git a/shared/models/server/debug.model.ts b/shared/models/server/debug.model.ts deleted file mode 100644 index 41f2109af..000000000 --- a/shared/models/server/debug.model.ts +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | export interface Debug { | ||
2 | ip: string | ||
3 | activityPubMessagesWaiting: number | ||
4 | } | ||
5 | |||
6 | export interface SendDebugCommand { | ||
7 | command: 'remove-dandling-resumable-uploads' | ||
8 | | 'process-video-views-buffer' | ||
9 | | 'process-video-viewers' | ||
10 | | 'process-video-channel-sync-latest' | ||
11 | | 'process-update-videos-scheduler' | ||
12 | } | ||
diff --git a/shared/models/server/emailer.model.ts b/shared/models/server/emailer.model.ts deleted file mode 100644 index 39512d306..000000000 --- a/shared/models/server/emailer.model.ts +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | type From = string | { name?: string, address: string } | ||
2 | |||
3 | interface Base extends Partial<SendEmailDefaultMessageOptions> { | ||
4 | to: string[] | string | ||
5 | } | ||
6 | |||
7 | interface MailTemplate extends Base { | ||
8 | template: string | ||
9 | locals?: { [key: string]: any } | ||
10 | text?: undefined | ||
11 | } | ||
12 | |||
13 | interface MailText extends Base { | ||
14 | text: string | ||
15 | |||
16 | locals?: Partial<SendEmailDefaultLocalsOptions> & { | ||
17 | title?: string | ||
18 | action?: { | ||
19 | url: string | ||
20 | text: string | ||
21 | } | ||
22 | } | ||
23 | } | ||
24 | |||
25 | interface SendEmailDefaultLocalsOptions { | ||
26 | instanceName: string | ||
27 | text: string | ||
28 | subject: string | ||
29 | } | ||
30 | |||
31 | interface SendEmailDefaultMessageOptions { | ||
32 | to: string[] | string | ||
33 | from: From | ||
34 | subject: string | ||
35 | replyTo: string | ||
36 | } | ||
37 | |||
38 | export type SendEmailDefaultOptions = { | ||
39 | template: 'common' | ||
40 | |||
41 | message: SendEmailDefaultMessageOptions | ||
42 | |||
43 | locals: SendEmailDefaultLocalsOptions & { | ||
44 | WEBSERVER: any | ||
45 | EMAIL: any | ||
46 | } | ||
47 | } | ||
48 | |||
49 | export type SendEmailOptions = MailTemplate | MailText | ||
diff --git a/shared/models/server/index.ts b/shared/models/server/index.ts deleted file mode 100644 index a9136f3d4..000000000 --- a/shared/models/server/index.ts +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | export * from './about.model' | ||
2 | export * from './broadcast-message-level.type' | ||
3 | export * from './client-log-create.model' | ||
4 | export * from './client-log-level.type' | ||
5 | export * from './contact-form.model' | ||
6 | export * from './custom-config.model' | ||
7 | export * from './debug.model' | ||
8 | export * from './emailer.model' | ||
9 | export * from './job.model' | ||
10 | export * from './peertube-problem-document.model' | ||
11 | export * from './server-config.model' | ||
12 | export * from './server-debug.model' | ||
13 | export * from './server-error-code.enum' | ||
14 | export * from './server-follow-create.model' | ||
15 | export * from './server-log-level.type' | ||
16 | export * from './server-stats.model' | ||
diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts deleted file mode 100644 index c14806dab..000000000 --- a/shared/models/server/job.model.ts +++ /dev/null | |||
@@ -1,304 +0,0 @@ | |||
1 | import { ContextType } from '../activitypub/context' | ||
2 | import { VideoState } from '../videos' | ||
3 | import { VideoResolution } from '../videos/file/video-resolution.enum' | ||
4 | import { VideoStudioTaskCut } from '../videos/studio' | ||
5 | import { SendEmailOptions } from './emailer.model' | ||
6 | |||
7 | export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' | 'paused' | 'waiting-children' | ||
8 | |||
9 | export type JobType = | ||
10 | | 'activitypub-cleaner' | ||
11 | | 'activitypub-follow' | ||
12 | | 'activitypub-http-broadcast-parallel' | ||
13 | | 'activitypub-http-broadcast' | ||
14 | | 'activitypub-http-fetcher' | ||
15 | | 'activitypub-http-unicast' | ||
16 | | 'activitypub-refresher' | ||
17 | | 'actor-keys' | ||
18 | | 'after-video-channel-import' | ||
19 | | 'email' | ||
20 | | 'federate-video' | ||
21 | | 'transcoding-job-builder' | ||
22 | | 'manage-video-torrent' | ||
23 | | 'move-to-object-storage' | ||
24 | | 'notify' | ||
25 | | 'video-channel-import' | ||
26 | | 'video-file-import' | ||
27 | | 'video-import' | ||
28 | | 'video-live-ending' | ||
29 | | 'video-redundancy' | ||
30 | | 'video-studio-edition' | ||
31 | | 'video-transcoding' | ||
32 | | 'videos-views-stats' | ||
33 | | 'generate-video-storyboard' | ||
34 | |||
35 | export interface Job { | ||
36 | id: number | string | ||
37 | state: JobState | 'unknown' | ||
38 | type: JobType | ||
39 | data: any | ||
40 | priority: number | ||
41 | progress: number | ||
42 | error: any | ||
43 | createdAt: Date | string | ||
44 | finishedOn: Date | string | ||
45 | processedOn: Date | string | ||
46 | |||
47 | parent?: { | ||
48 | id: string | ||
49 | } | ||
50 | } | ||
51 | |||
52 | export type ActivitypubHttpBroadcastPayload = { | ||
53 | uris: string[] | ||
54 | contextType: ContextType | ||
55 | body: any | ||
56 | signatureActorId?: number | ||
57 | } | ||
58 | |||
59 | export type ActivitypubFollowPayload = { | ||
60 | followerActorId: number | ||
61 | name: string | ||
62 | host: string | ||
63 | isAutoFollow?: boolean | ||
64 | assertIsChannel?: boolean | ||
65 | } | ||
66 | |||
67 | export type FetchType = 'activity' | 'video-shares' | 'video-comments' | 'account-playlists' | ||
68 | export type ActivitypubHttpFetcherPayload = { | ||
69 | uri: string | ||
70 | type: FetchType | ||
71 | videoId?: number | ||
72 | } | ||
73 | |||
74 | export type ActivitypubHttpUnicastPayload = { | ||
75 | uri: string | ||
76 | contextType: ContextType | ||
77 | signatureActorId?: number | ||
78 | body: object | ||
79 | } | ||
80 | |||
81 | export type RefreshPayload = { | ||
82 | type: 'video' | 'video-playlist' | 'actor' | ||
83 | url: string | ||
84 | } | ||
85 | |||
86 | export type EmailPayload = SendEmailOptions | ||
87 | |||
88 | export type VideoFileImportPayload = { | ||
89 | videoUUID: string | ||
90 | filePath: string | ||
91 | } | ||
92 | |||
93 | // --------------------------------------------------------------------------- | ||
94 | |||
95 | export type VideoImportTorrentPayloadType = 'magnet-uri' | 'torrent-file' | ||
96 | export type VideoImportYoutubeDLPayloadType = 'youtube-dl' | ||
97 | |||
98 | export interface VideoImportYoutubeDLPayload { | ||
99 | type: VideoImportYoutubeDLPayloadType | ||
100 | videoImportId: number | ||
101 | |||
102 | fileExt?: string | ||
103 | } | ||
104 | |||
105 | export interface VideoImportTorrentPayload { | ||
106 | type: VideoImportTorrentPayloadType | ||
107 | videoImportId: number | ||
108 | } | ||
109 | |||
110 | export type VideoImportPayload = (VideoImportYoutubeDLPayload | VideoImportTorrentPayload) & { | ||
111 | preventException: boolean | ||
112 | } | ||
113 | |||
114 | export interface VideoImportPreventExceptionResult { | ||
115 | resultType: 'success' | 'error' | ||
116 | } | ||
117 | |||
118 | // --------------------------------------------------------------------------- | ||
119 | |||
120 | export type VideoRedundancyPayload = { | ||
121 | videoId: number | ||
122 | } | ||
123 | |||
124 | export type ManageVideoTorrentPayload = | ||
125 | { | ||
126 | action: 'create' | ||
127 | videoId: number | ||
128 | videoFileId: number | ||
129 | } | { | ||
130 | action: 'update-metadata' | ||
131 | |||
132 | videoId?: number | ||
133 | streamingPlaylistId?: number | ||
134 | |||
135 | videoFileId: number | ||
136 | } | ||
137 | |||
138 | // Video transcoding payloads | ||
139 | |||
140 | interface BaseTranscodingPayload { | ||
141 | videoUUID: string | ||
142 | isNewVideo?: boolean | ||
143 | } | ||
144 | |||
145 | export interface HLSTranscodingPayload extends BaseTranscodingPayload { | ||
146 | type: 'new-resolution-to-hls' | ||
147 | resolution: VideoResolution | ||
148 | fps: number | ||
149 | copyCodecs: boolean | ||
150 | |||
151 | deleteWebVideoFiles: boolean | ||
152 | } | ||
153 | |||
154 | export interface NewWebVideoResolutionTranscodingPayload extends BaseTranscodingPayload { | ||
155 | type: 'new-resolution-to-web-video' | ||
156 | resolution: VideoResolution | ||
157 | fps: number | ||
158 | } | ||
159 | |||
160 | export interface MergeAudioTranscodingPayload extends BaseTranscodingPayload { | ||
161 | type: 'merge-audio-to-web-video' | ||
162 | |||
163 | resolution: VideoResolution | ||
164 | fps: number | ||
165 | |||
166 | hasChildren: boolean | ||
167 | } | ||
168 | |||
169 | export interface OptimizeTranscodingPayload extends BaseTranscodingPayload { | ||
170 | type: 'optimize-to-web-video' | ||
171 | |||
172 | quickTranscode: boolean | ||
173 | |||
174 | hasChildren: boolean | ||
175 | } | ||
176 | |||
177 | export type VideoTranscodingPayload = | ||
178 | HLSTranscodingPayload | ||
179 | | NewWebVideoResolutionTranscodingPayload | ||
180 | | OptimizeTranscodingPayload | ||
181 | | MergeAudioTranscodingPayload | ||
182 | |||
183 | export interface VideoLiveEndingPayload { | ||
184 | videoId: number | ||
185 | publishedAt: string | ||
186 | liveSessionId: number | ||
187 | streamingPlaylistId: number | ||
188 | |||
189 | replayDirectory?: string | ||
190 | } | ||
191 | |||
192 | export interface ActorKeysPayload { | ||
193 | actorId: number | ||
194 | } | ||
195 | |||
196 | export interface DeleteResumableUploadMetaFilePayload { | ||
197 | filepath: string | ||
198 | } | ||
199 | |||
200 | export interface MoveObjectStoragePayload { | ||
201 | videoUUID: string | ||
202 | isNewVideo: boolean | ||
203 | previousVideoState: VideoState | ||
204 | } | ||
205 | |||
206 | export type VideoStudioTaskCutPayload = VideoStudioTaskCut | ||
207 | |||
208 | export type VideoStudioTaskIntroPayload = { | ||
209 | name: 'add-intro' | ||
210 | |||
211 | options: { | ||
212 | file: string | ||
213 | } | ||
214 | } | ||
215 | |||
216 | export type VideoStudioTaskOutroPayload = { | ||
217 | name: 'add-outro' | ||
218 | |||
219 | options: { | ||
220 | file: string | ||
221 | } | ||
222 | } | ||
223 | |||
224 | export type VideoStudioTaskWatermarkPayload = { | ||
225 | name: 'add-watermark' | ||
226 | |||
227 | options: { | ||
228 | file: string | ||
229 | |||
230 | watermarkSizeRatio: number | ||
231 | horitonzalMarginRatio: number | ||
232 | verticalMarginRatio: number | ||
233 | } | ||
234 | } | ||
235 | |||
236 | export type VideoStudioTaskPayload = | ||
237 | VideoStudioTaskCutPayload | | ||
238 | VideoStudioTaskIntroPayload | | ||
239 | VideoStudioTaskOutroPayload | | ||
240 | VideoStudioTaskWatermarkPayload | ||
241 | |||
242 | export interface VideoStudioEditionPayload { | ||
243 | videoUUID: string | ||
244 | tasks: VideoStudioTaskPayload[] | ||
245 | } | ||
246 | |||
247 | // --------------------------------------------------------------------------- | ||
248 | |||
249 | export interface VideoChannelImportPayload { | ||
250 | externalChannelUrl: string | ||
251 | videoChannelId: number | ||
252 | |||
253 | partOfChannelSyncId?: number | ||
254 | } | ||
255 | |||
256 | export interface AfterVideoChannelImportPayload { | ||
257 | channelSyncId: number | ||
258 | } | ||
259 | |||
260 | // --------------------------------------------------------------------------- | ||
261 | |||
262 | export type NotifyPayload = | ||
263 | { | ||
264 | action: 'new-video' | ||
265 | videoUUID: string | ||
266 | } | ||
267 | |||
268 | // --------------------------------------------------------------------------- | ||
269 | |||
270 | export interface FederateVideoPayload { | ||
271 | videoUUID: string | ||
272 | isNewVideo: boolean | ||
273 | } | ||
274 | |||
275 | // --------------------------------------------------------------------------- | ||
276 | |||
277 | export interface TranscodingJobBuilderPayload { | ||
278 | videoUUID: string | ||
279 | |||
280 | optimizeJob?: { | ||
281 | isNewVideo: boolean | ||
282 | } | ||
283 | |||
284 | // Array of jobs to create | ||
285 | jobs?: { | ||
286 | type: 'video-transcoding' | ||
287 | payload: VideoTranscodingPayload | ||
288 | priority?: number | ||
289 | }[] | ||
290 | |||
291 | // Array of sequential jobs to create | ||
292 | sequentialJobs?: { | ||
293 | type: 'video-transcoding' | ||
294 | payload: VideoTranscodingPayload | ||
295 | priority?: number | ||
296 | }[][] | ||
297 | } | ||
298 | |||
299 | // --------------------------------------------------------------------------- | ||
300 | |||
301 | export interface GenerateStoryboardPayload { | ||
302 | videoUUID: string | ||
303 | federate: boolean | ||
304 | } | ||
diff --git a/shared/models/server/peertube-problem-document.model.ts b/shared/models/server/peertube-problem-document.model.ts deleted file mode 100644 index 83d9cea9b..000000000 --- a/shared/models/server/peertube-problem-document.model.ts +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | import { HttpStatusCode } from '../../models' | ||
2 | import { OAuth2ErrorCode, ServerErrorCode } from './server-error-code.enum' | ||
3 | |||
4 | export interface PeerTubeProblemDocumentData { | ||
5 | 'invalid-params'?: Record<string, object> | ||
6 | |||
7 | originUrl?: string | ||
8 | |||
9 | keyId?: string | ||
10 | |||
11 | targetUrl?: string | ||
12 | |||
13 | actorUrl?: string | ||
14 | |||
15 | // Feeds | ||
16 | format?: string | ||
17 | url?: string | ||
18 | } | ||
19 | |||
20 | export interface PeerTubeProblemDocument extends PeerTubeProblemDocumentData { | ||
21 | type: string | ||
22 | title: string | ||
23 | |||
24 | detail: string | ||
25 | // Compat PeerTube <= 3.2 | ||
26 | error: string | ||
27 | |||
28 | status: HttpStatusCode | ||
29 | |||
30 | docs?: string | ||
31 | code?: ServerErrorCode | OAuth2ErrorCode | ||
32 | } | ||
diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts deleted file mode 100644 index 3f61e93b5..000000000 --- a/shared/models/server/server-config.model.ts +++ /dev/null | |||
@@ -1,305 +0,0 @@ | |||
1 | import { ClientScriptJSON } from '../plugins/plugin-package-json.model' | ||
2 | import { NSFWPolicyType } from '../videos/nsfw-policy.type' | ||
3 | import { VideoPrivacy } from '../videos/video-privacy.enum' | ||
4 | import { BroadcastMessageLevel } from './broadcast-message-level.type' | ||
5 | |||
6 | export interface ServerConfigPlugin { | ||
7 | name: string | ||
8 | npmName: string | ||
9 | version: string | ||
10 | description: string | ||
11 | clientScripts: { [name: string]: ClientScriptJSON } | ||
12 | } | ||
13 | |||
14 | export interface ServerConfigTheme extends ServerConfigPlugin { | ||
15 | css: string[] | ||
16 | } | ||
17 | |||
18 | export interface RegisteredExternalAuthConfig { | ||
19 | npmName: string | ||
20 | name: string | ||
21 | version: string | ||
22 | authName: string | ||
23 | authDisplayName: string | ||
24 | } | ||
25 | |||
26 | export interface RegisteredIdAndPassAuthConfig { | ||
27 | npmName: string | ||
28 | name: string | ||
29 | version: string | ||
30 | authName: string | ||
31 | weight: number | ||
32 | } | ||
33 | |||
34 | export interface ServerConfig { | ||
35 | serverVersion: string | ||
36 | serverCommit?: string | ||
37 | |||
38 | client: { | ||
39 | videos: { | ||
40 | miniature: { | ||
41 | displayAuthorAvatar: boolean | ||
42 | preferAuthorDisplayName: boolean | ||
43 | } | ||
44 | resumableUpload: { | ||
45 | maxChunkSize: number | ||
46 | } | ||
47 | } | ||
48 | |||
49 | menu: { | ||
50 | login: { | ||
51 | redirectOnSingleExternalAuth: boolean | ||
52 | } | ||
53 | } | ||
54 | } | ||
55 | |||
56 | defaults: { | ||
57 | publish: { | ||
58 | downloadEnabled: boolean | ||
59 | commentsEnabled: boolean | ||
60 | privacy: VideoPrivacy | ||
61 | licence: number | ||
62 | } | ||
63 | |||
64 | p2p: { | ||
65 | webapp: { | ||
66 | enabled: boolean | ||
67 | } | ||
68 | |||
69 | embed: { | ||
70 | enabled: boolean | ||
71 | } | ||
72 | } | ||
73 | } | ||
74 | |||
75 | webadmin: { | ||
76 | configuration: { | ||
77 | edition: { | ||
78 | allowed: boolean | ||
79 | } | ||
80 | } | ||
81 | } | ||
82 | |||
83 | instance: { | ||
84 | name: string | ||
85 | shortDescription: string | ||
86 | isNSFW: boolean | ||
87 | defaultNSFWPolicy: NSFWPolicyType | ||
88 | defaultClientRoute: string | ||
89 | customizations: { | ||
90 | javascript: string | ||
91 | css: string | ||
92 | } | ||
93 | } | ||
94 | |||
95 | search: { | ||
96 | remoteUri: { | ||
97 | users: boolean | ||
98 | anonymous: boolean | ||
99 | } | ||
100 | |||
101 | searchIndex: { | ||
102 | enabled: boolean | ||
103 | url: string | ||
104 | disableLocalSearch: boolean | ||
105 | isDefaultSearch: boolean | ||
106 | } | ||
107 | } | ||
108 | |||
109 | plugin: { | ||
110 | registered: ServerConfigPlugin[] | ||
111 | |||
112 | registeredExternalAuths: RegisteredExternalAuthConfig[] | ||
113 | |||
114 | registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[] | ||
115 | } | ||
116 | |||
117 | theme: { | ||
118 | registered: ServerConfigTheme[] | ||
119 | default: string | ||
120 | } | ||
121 | |||
122 | email: { | ||
123 | enabled: boolean | ||
124 | } | ||
125 | |||
126 | contactForm: { | ||
127 | enabled: boolean | ||
128 | } | ||
129 | |||
130 | signup: { | ||
131 | allowed: boolean | ||
132 | allowedForCurrentIP: boolean | ||
133 | requiresEmailVerification: boolean | ||
134 | requiresApproval: boolean | ||
135 | minimumAge: number | ||
136 | } | ||
137 | |||
138 | transcoding: { | ||
139 | hls: { | ||
140 | enabled: boolean | ||
141 | } | ||
142 | |||
143 | web_videos: { | ||
144 | enabled: boolean | ||
145 | } | ||
146 | |||
147 | enabledResolutions: number[] | ||
148 | |||
149 | profile: string | ||
150 | availableProfiles: string[] | ||
151 | |||
152 | remoteRunners: { | ||
153 | enabled: boolean | ||
154 | } | ||
155 | } | ||
156 | |||
157 | live: { | ||
158 | enabled: boolean | ||
159 | |||
160 | allowReplay: boolean | ||
161 | latencySetting: { | ||
162 | enabled: boolean | ||
163 | } | ||
164 | |||
165 | maxDuration: number | ||
166 | maxInstanceLives: number | ||
167 | maxUserLives: number | ||
168 | |||
169 | transcoding: { | ||
170 | enabled: boolean | ||
171 | |||
172 | remoteRunners: { | ||
173 | enabled: boolean | ||
174 | } | ||
175 | |||
176 | enabledResolutions: number[] | ||
177 | |||
178 | profile: string | ||
179 | availableProfiles: string[] | ||
180 | } | ||
181 | |||
182 | rtmp: { | ||
183 | port: number | ||
184 | } | ||
185 | } | ||
186 | |||
187 | videoStudio: { | ||
188 | enabled: boolean | ||
189 | |||
190 | remoteRunners: { | ||
191 | enabled: boolean | ||
192 | } | ||
193 | } | ||
194 | |||
195 | videoFile: { | ||
196 | update: { | ||
197 | enabled: boolean | ||
198 | } | ||
199 | } | ||
200 | |||
201 | import: { | ||
202 | videos: { | ||
203 | http: { | ||
204 | enabled: boolean | ||
205 | } | ||
206 | torrent: { | ||
207 | enabled: boolean | ||
208 | } | ||
209 | } | ||
210 | videoChannelSynchronization: { | ||
211 | enabled: boolean | ||
212 | } | ||
213 | } | ||
214 | |||
215 | autoBlacklist: { | ||
216 | videos: { | ||
217 | ofUsers: { | ||
218 | enabled: boolean | ||
219 | } | ||
220 | } | ||
221 | } | ||
222 | |||
223 | avatar: { | ||
224 | file: { | ||
225 | size: { | ||
226 | max: number | ||
227 | } | ||
228 | extensions: string[] | ||
229 | } | ||
230 | } | ||
231 | |||
232 | banner: { | ||
233 | file: { | ||
234 | size: { | ||
235 | max: number | ||
236 | } | ||
237 | extensions: string[] | ||
238 | } | ||
239 | } | ||
240 | |||
241 | video: { | ||
242 | image: { | ||
243 | size: { | ||
244 | max: number | ||
245 | } | ||
246 | extensions: string[] | ||
247 | } | ||
248 | file: { | ||
249 | extensions: string[] | ||
250 | } | ||
251 | } | ||
252 | |||
253 | videoCaption: { | ||
254 | file: { | ||
255 | size: { | ||
256 | max: number | ||
257 | } | ||
258 | extensions: string[] | ||
259 | } | ||
260 | } | ||
261 | |||
262 | user: { | ||
263 | videoQuota: number | ||
264 | videoQuotaDaily: number | ||
265 | } | ||
266 | |||
267 | videoChannels: { | ||
268 | maxPerUser: number | ||
269 | } | ||
270 | |||
271 | trending: { | ||
272 | videos: { | ||
273 | intervalDays: number | ||
274 | algorithms: { | ||
275 | enabled: string[] | ||
276 | default: string | ||
277 | } | ||
278 | } | ||
279 | } | ||
280 | |||
281 | tracker: { | ||
282 | enabled: boolean | ||
283 | } | ||
284 | |||
285 | followings: { | ||
286 | instance: { | ||
287 | autoFollowIndex: { | ||
288 | indexUrl: string | ||
289 | } | ||
290 | } | ||
291 | } | ||
292 | |||
293 | broadcastMessage: { | ||
294 | enabled: boolean | ||
295 | message: string | ||
296 | level: BroadcastMessageLevel | ||
297 | dismissable: boolean | ||
298 | } | ||
299 | |||
300 | homepage: { | ||
301 | enabled: boolean | ||
302 | } | ||
303 | } | ||
304 | |||
305 | export type HTMLServerConfig = Omit<ServerConfig, 'signup'> | ||
diff --git a/shared/models/server/server-debug.model.ts b/shared/models/server/server-debug.model.ts deleted file mode 100644 index 4b731bb90..000000000 --- a/shared/models/server/server-debug.model.ts +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | export interface ServerDebug { | ||
2 | ip: string | ||
3 | activityPubMessagesWaiting: number | ||
4 | } | ||
diff --git a/shared/models/server/server-error-code.enum.ts b/shared/models/server/server-error-code.enum.ts deleted file mode 100644 index 583e8245f..000000000 --- a/shared/models/server/server-error-code.enum.ts +++ /dev/null | |||
@@ -1,89 +0,0 @@ | |||
1 | export const enum ServerErrorCode { | ||
2 | /** | ||
3 | * The simplest form of payload too large: when the file size is over the | ||
4 | * global file size limit | ||
5 | */ | ||
6 | MAX_FILE_SIZE_REACHED = 'max_file_size_reached', | ||
7 | |||
8 | /** | ||
9 | * The payload is too large for the user quota set | ||
10 | */ | ||
11 | QUOTA_REACHED = 'quota_reached', | ||
12 | |||
13 | /** | ||
14 | * Error yielded upon trying to access a video that is not federated, nor can | ||
15 | * be. This may be due to: remote videos on instances that are not followed by | ||
16 | * yours, and with your instance disallowing unknown instances being accessed. | ||
17 | */ | ||
18 | DOES_NOT_RESPECT_FOLLOW_CONSTRAINTS = 'does_not_respect_follow_constraints', | ||
19 | |||
20 | LIVE_NOT_ENABLED = 'live_not_enabled', | ||
21 | LIVE_NOT_ALLOWING_REPLAY = 'live_not_allowing_replay', | ||
22 | LIVE_CONFLICTING_PERMANENT_AND_SAVE_REPLAY = 'live_conflicting_permanent_and_save_replay', | ||
23 | /** | ||
24 | * Pretty self-explanatory: the set maximum number of simultaneous lives was | ||
25 | * reached, and this error is typically there to inform the user trying to | ||
26 | * broadcast one. | ||
27 | */ | ||
28 | MAX_INSTANCE_LIVES_LIMIT_REACHED = 'max_instance_lives_limit_reached', | ||
29 | /** | ||
30 | * Pretty self-explanatory: the set maximum number of simultaneous lives FOR | ||
31 | * THIS USER was reached, and this error is typically there to inform the user | ||
32 | * trying to broadcast one. | ||
33 | */ | ||
34 | MAX_USER_LIVES_LIMIT_REACHED = 'max_user_lives_limit_reached', | ||
35 | |||
36 | /** | ||
37 | * A torrent should have at most one correct video file. Any more and we will | ||
38 | * not be able to choose automatically. | ||
39 | */ | ||
40 | INCORRECT_FILES_IN_TORRENT = 'incorrect_files_in_torrent', | ||
41 | |||
42 | COMMENT_NOT_ASSOCIATED_TO_VIDEO = 'comment_not_associated_to_video', | ||
43 | |||
44 | MISSING_TWO_FACTOR = 'missing_two_factor', | ||
45 | INVALID_TWO_FACTOR = 'invalid_two_factor', | ||
46 | |||
47 | ACCOUNT_WAITING_FOR_APPROVAL = 'account_waiting_for_approval', | ||
48 | ACCOUNT_APPROVAL_REJECTED = 'account_approval_rejected', | ||
49 | |||
50 | RUNNER_JOB_NOT_IN_PROCESSING_STATE = 'runner_job_not_in_processing_state', | ||
51 | RUNNER_JOB_NOT_IN_PENDING_STATE = 'runner_job_not_in_pending_state', | ||
52 | UNKNOWN_RUNNER_TOKEN = 'unknown_runner_token', | ||
53 | |||
54 | VIDEO_REQUIRES_PASSWORD = 'video_requires_password', | ||
55 | INCORRECT_VIDEO_PASSWORD = 'incorrect_video_password', | ||
56 | |||
57 | VIDEO_ALREADY_BEING_TRANSCODED = 'video_already_being_transcoded' | ||
58 | } | ||
59 | |||
60 | /** | ||
61 | * oauthjs/oauth2-server error codes | ||
62 | * @see https://datatracker.ietf.org/doc/html/rfc6749#section-5.2 | ||
63 | **/ | ||
64 | export const enum OAuth2ErrorCode { | ||
65 | /** | ||
66 | * The provided authorization grant (e.g., authorization code, resource owner | ||
67 | * credentials) or refresh token is invalid, expired, revoked, does not match | ||
68 | * the redirection URI used in the authorization request, or was issued to | ||
69 | * another client. | ||
70 | * | ||
71 | * @see https://github.com/oauthjs/node-oauth2-server/blob/master/lib/errors/invalid-grant-error.js | ||
72 | */ | ||
73 | INVALID_GRANT = 'invalid_grant', | ||
74 | |||
75 | /** | ||
76 | * Client authentication failed (e.g., unknown client, no client authentication | ||
77 | * included, or unsupported authentication method). | ||
78 | * | ||
79 | * @see https://github.com/oauthjs/node-oauth2-server/blob/master/lib/errors/invalid-client-error.js | ||
80 | */ | ||
81 | INVALID_CLIENT = 'invalid_client', | ||
82 | |||
83 | /** | ||
84 | * The access token provided is expired, revoked, malformed, or invalid for other reasons | ||
85 | * | ||
86 | * @see https://github.com/oauthjs/node-oauth2-server/blob/master/lib/errors/invalid-token-error.js | ||
87 | */ | ||
88 | INVALID_TOKEN = 'invalid_token' | ||
89 | } | ||
diff --git a/shared/models/server/server-follow-create.model.ts b/shared/models/server/server-follow-create.model.ts deleted file mode 100644 index 3f90c7d6f..000000000 --- a/shared/models/server/server-follow-create.model.ts +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | export interface ServerFollowCreate { | ||
2 | hosts?: string[] | ||
3 | handles?: string[] | ||
4 | } | ||
diff --git a/shared/models/server/server-log-level.type.ts b/shared/models/server/server-log-level.type.ts deleted file mode 100644 index f0f31a4ae..000000000 --- a/shared/models/server/server-log-level.type.ts +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | export type ServerLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'audit' | ||
diff --git a/shared/models/server/server-stats.model.ts b/shared/models/server/server-stats.model.ts deleted file mode 100644 index 82f5a737f..000000000 --- a/shared/models/server/server-stats.model.ts +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | import { ActivityType } from '../activitypub' | ||
2 | import { VideoRedundancyStrategyWithManual } from '../redundancy' | ||
3 | |||
4 | type ActivityPubMessagesSuccess = Record<`totalActivityPub${ActivityType}MessagesSuccesses`, number> | ||
5 | type ActivityPubMessagesErrors = Record<`totalActivityPub${ActivityType}MessagesErrors`, number> | ||
6 | |||
7 | export interface ServerStats extends ActivityPubMessagesSuccess, ActivityPubMessagesErrors { | ||
8 | totalUsers: number | ||
9 | totalDailyActiveUsers: number | ||
10 | totalWeeklyActiveUsers: number | ||
11 | totalMonthlyActiveUsers: number | ||
12 | |||
13 | totalLocalVideos: number | ||
14 | totalLocalVideoViews: number | ||
15 | totalLocalVideoComments: number | ||
16 | totalLocalVideoFilesSize: number | ||
17 | |||
18 | totalVideos: number | ||
19 | totalVideoComments: number | ||
20 | |||
21 | totalLocalVideoChannels: number | ||
22 | totalLocalDailyActiveVideoChannels: number | ||
23 | totalLocalWeeklyActiveVideoChannels: number | ||
24 | totalLocalMonthlyActiveVideoChannels: number | ||
25 | |||
26 | totalLocalPlaylists: number | ||
27 | |||
28 | totalInstanceFollowers: number | ||
29 | totalInstanceFollowing: number | ||
30 | |||
31 | videosRedundancy: VideosRedundancyStats[] | ||
32 | |||
33 | totalActivityPubMessagesProcessed: number | ||
34 | totalActivityPubMessagesSuccesses: number | ||
35 | totalActivityPubMessagesErrors: number | ||
36 | |||
37 | activityPubMessagesProcessedPerSecond: number | ||
38 | totalActivityPubMessagesWaiting: number | ||
39 | } | ||
40 | |||
41 | export interface VideosRedundancyStats { | ||
42 | strategy: VideoRedundancyStrategyWithManual | ||
43 | totalSize: number | ||
44 | totalUsed: number | ||
45 | totalVideoFiles: number | ||
46 | totalVideos: number | ||
47 | } | ||