diff options
Diffstat (limited to 'shared/models')
-rw-r--r-- | shared/models/activitypub/activitypub-actor.ts | 7 | ||||
-rw-r--r-- | shared/models/actors/account.model.ts | 7 | ||||
-rw-r--r-- | shared/models/actors/actor-image.model.ts | 1 | ||||
-rw-r--r-- | shared/models/actors/actor.model.ts | 6 | ||||
-rw-r--r-- | shared/models/plugins/server/server-hook.model.ts | 5 | ||||
-rw-r--r-- | shared/models/server/custom-config.model.ts | 4 | ||||
-rw-r--r-- | shared/models/server/job.model.ts | 39 | ||||
-rw-r--r-- | shared/models/server/server-config.model.ts | 4 | ||||
-rw-r--r-- | shared/models/users/user-notification.model.ts | 11 | ||||
-rw-r--r-- | shared/models/videos/channel/video-channel.model.ts | 13 | ||||
-rw-r--r-- | shared/models/videos/editor/index.ts | 1 | ||||
-rw-r--r-- | shared/models/videos/editor/video-editor-create-edit.model.ts | 42 | ||||
-rw-r--r-- | shared/models/videos/index.ts | 1 | ||||
-rw-r--r-- | shared/models/videos/transcoding/video-transcoding-fps.model.ts | 1 | ||||
-rw-r--r-- | shared/models/videos/transcoding/video-transcoding.model.ts | 7 | ||||
-rw-r--r-- | shared/models/videos/video-state.enum.ts | 3 |
16 files changed, 139 insertions, 13 deletions
diff --git a/shared/models/activitypub/activitypub-actor.ts b/shared/models/activitypub/activitypub-actor.ts index 09d4f7402..efb6edec4 100644 --- a/shared/models/activitypub/activitypub-actor.ts +++ b/shared/models/activitypub/activitypub-actor.ts | |||
@@ -27,8 +27,11 @@ export interface ActivityPubActor { | |||
27 | publicKeyPem: string | 27 | publicKeyPem: string |
28 | } | 28 | } |
29 | 29 | ||
30 | icon?: ActivityIconObject | 30 | image?: ActivityIconObject | ActivityIconObject[] |
31 | image?: ActivityIconObject | 31 | |
32 | icon?: ActivityIconObject | ActivityIconObject[] | ||
33 | // TODO: migrate to `icon`, introduced in 4.2 | ||
34 | icons?: ActivityIconObject[] | ||
32 | 35 | ||
33 | published?: string | 36 | published?: string |
34 | } | 37 | } |
diff --git a/shared/models/actors/account.model.ts b/shared/models/actors/account.model.ts index f2138077e..60f4236d5 100644 --- a/shared/models/actors/account.model.ts +++ b/shared/models/actors/account.model.ts | |||
@@ -4,6 +4,7 @@ import { Actor } from './actor.model' | |||
4 | export interface Account extends Actor { | 4 | export interface Account extends Actor { |
5 | displayName: string | 5 | displayName: string |
6 | description: string | 6 | description: string |
7 | avatars: ActorImage[] | ||
7 | 8 | ||
8 | updatedAt: Date | string | 9 | updatedAt: Date | string |
9 | 10 | ||
@@ -16,5 +17,9 @@ export interface AccountSummary { | |||
16 | displayName: string | 17 | displayName: string |
17 | url: string | 18 | url: string |
18 | host: string | 19 | host: string |
19 | avatar?: ActorImage | 20 | |
21 | avatars: ActorImage[] | ||
22 | |||
23 | // TODO: remove, deprecated in 4.2 | ||
24 | avatar: ActorImage | ||
20 | } | 25 | } |
diff --git a/shared/models/actors/actor-image.model.ts b/shared/models/actors/actor-image.model.ts index ad5eab627..cfe44ac15 100644 --- a/shared/models/actors/actor-image.model.ts +++ b/shared/models/actors/actor-image.model.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | export interface ActorImage { | 1 | export interface ActorImage { |
2 | width: number | ||
2 | path: string | 3 | path: string |
3 | 4 | ||
4 | url?: string | 5 | url?: string |
diff --git a/shared/models/actors/actor.model.ts b/shared/models/actors/actor.model.ts index fd0662331..bf86a917f 100644 --- a/shared/models/actors/actor.model.ts +++ b/shared/models/actors/actor.model.ts | |||
@@ -8,5 +8,9 @@ export interface Actor { | |||
8 | followingCount: number | 8 | followingCount: number |
9 | followersCount: number | 9 | followersCount: number |
10 | createdAt: Date | string | 10 | createdAt: Date | string |
11 | avatar?: ActorImage | 11 | |
12 | avatars: ActorImage[] | ||
13 | |||
14 | // TODO: remove, deprecated in 4.2 | ||
15 | avatar: ActorImage | ||
12 | } | 16 | } |
diff --git a/shared/models/plugins/server/server-hook.model.ts b/shared/models/plugins/server/server-hook.model.ts index bd2b27da5..e64c3bbbc 100644 --- a/shared/models/plugins/server/server-hook.model.ts +++ b/shared/models/plugins/server/server-hook.model.ts | |||
@@ -6,6 +6,11 @@ export const serverFilterHookObject = { | |||
6 | 'filter:api.videos.list.params': true, | 6 | 'filter:api.videos.list.params': true, |
7 | 'filter:api.videos.list.result': true, | 7 | 'filter:api.videos.list.result': true, |
8 | 8 | ||
9 | // Filter params/result used to list a video playlists videos | ||
10 | // for the REST API | ||
11 | 'filter:api.video-playlist.videos.list.params': true, | ||
12 | 'filter:api.video-playlist.videos.list.result': true, | ||
13 | |||
9 | // Filter params/result used to list account videos for the REST API | 14 | // Filter params/result used to list account videos for the REST API |
10 | 'filter:api.accounts.videos.list.params': true, | 15 | 'filter:api.accounts.videos.list.params': true, |
11 | 'filter:api.accounts.videos.list.result': true, | 16 | 'filter:api.accounts.videos.list.result': true, |
diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts index 52d3d9588..c9e7654de 100644 --- a/shared/models/server/custom-config.model.ts +++ b/shared/models/server/custom-config.model.ts | |||
@@ -143,6 +143,10 @@ export interface CustomConfig { | |||
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | videoEditor: { | ||
147 | enabled: boolean | ||
148 | } | ||
149 | |||
146 | import: { | 150 | import: { |
147 | videos: { | 151 | videos: { |
148 | concurrency: number | 152 | concurrency: number |
diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts index 1519d1c3e..d0293f542 100644 --- a/shared/models/server/job.model.ts +++ b/shared/models/server/job.model.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | import { ContextType } from '../activitypub/context' | 1 | import { ContextType } from '../activitypub/context' |
2 | import { VideoEditorTaskCut } from '../videos/editor' | ||
2 | import { VideoResolution } from '../videos/file/video-resolution.enum' | 3 | import { VideoResolution } from '../videos/file/video-resolution.enum' |
3 | import { SendEmailOptions } from './emailer.model' | 4 | import { SendEmailOptions } from './emailer.model' |
4 | 5 | ||
@@ -20,6 +21,7 @@ export type JobType = | |||
20 | | 'video-live-ending' | 21 | | 'video-live-ending' |
21 | | 'actor-keys' | 22 | | 'actor-keys' |
22 | | 'move-to-object-storage' | 23 | | 'move-to-object-storage' |
24 | | 'video-edition' | ||
23 | 25 | ||
24 | export interface Job { | 26 | export interface Job { |
25 | id: number | 27 | id: number |
@@ -155,3 +157,40 @@ export interface MoveObjectStoragePayload { | |||
155 | videoUUID: string | 157 | videoUUID: string |
156 | isNewVideo: boolean | 158 | isNewVideo: boolean |
157 | } | 159 | } |
160 | |||
161 | export type VideoEditorTaskCutPayload = VideoEditorTaskCut | ||
162 | |||
163 | export type VideoEditorTaskIntroPayload = { | ||
164 | name: 'add-intro' | ||
165 | |||
166 | options: { | ||
167 | file: string | ||
168 | } | ||
169 | } | ||
170 | |||
171 | export type VideoEditorTaskOutroPayload = { | ||
172 | name: 'add-outro' | ||
173 | |||
174 | options: { | ||
175 | file: string | ||
176 | } | ||
177 | } | ||
178 | |||
179 | export type VideoEditorTaskWatermarkPayload = { | ||
180 | name: 'add-watermark' | ||
181 | |||
182 | options: { | ||
183 | file: string | ||
184 | } | ||
185 | } | ||
186 | |||
187 | export type VideoEditionTaskPayload = | ||
188 | VideoEditorTaskCutPayload | | ||
189 | VideoEditorTaskIntroPayload | | ||
190 | VideoEditorTaskOutroPayload | | ||
191 | VideoEditorTaskWatermarkPayload | ||
192 | |||
193 | export interface VideoEditionPayload { | ||
194 | videoUUID: string | ||
195 | tasks: VideoEditionTaskPayload[] | ||
196 | } | ||
diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts index 32be96b9d..0fe8b0de8 100644 --- a/shared/models/server/server-config.model.ts +++ b/shared/models/server/server-config.model.ts | |||
@@ -167,6 +167,10 @@ export interface ServerConfig { | |||
167 | } | 167 | } |
168 | } | 168 | } |
169 | 169 | ||
170 | videoEditor: { | ||
171 | enabled: boolean | ||
172 | } | ||
173 | |||
170 | import: { | 174 | import: { |
171 | videos: { | 175 | videos: { |
172 | http: { | 176 | http: { |
diff --git a/shared/models/users/user-notification.model.ts b/shared/models/users/user-notification.model.ts index 5820589fe..a2621fb5b 100644 --- a/shared/models/users/user-notification.model.ts +++ b/shared/models/users/user-notification.model.ts | |||
@@ -40,14 +40,19 @@ export interface VideoInfo { | |||
40 | name: string | 40 | name: string |
41 | } | 41 | } |
42 | 42 | ||
43 | export interface AvatarInfo { | ||
44 | width: number | ||
45 | path: string | ||
46 | } | ||
47 | |||
43 | export interface ActorInfo { | 48 | export interface ActorInfo { |
44 | id: number | 49 | id: number |
45 | displayName: string | 50 | displayName: string |
46 | name: string | 51 | name: string |
47 | host: string | 52 | host: string |
48 | avatar?: { | 53 | |
49 | path: string | 54 | avatars: AvatarInfo[] |
50 | } | 55 | avatar: AvatarInfo |
51 | } | 56 | } |
52 | 57 | ||
53 | export interface UserNotification { | 58 | export interface UserNotification { |
diff --git a/shared/models/videos/channel/video-channel.model.ts b/shared/models/videos/channel/video-channel.model.ts index 5393f924d..58b60c177 100644 --- a/shared/models/videos/channel/video-channel.model.ts +++ b/shared/models/videos/channel/video-channel.model.ts | |||
@@ -1,5 +1,5 @@ | |||
1 | import { Actor } from '../../actors/actor.model' | ||
2 | import { Account, ActorImage } from '../../actors' | 1 | import { Account, ActorImage } from '../../actors' |
2 | import { Actor } from '../../actors/actor.model' | ||
3 | 3 | ||
4 | export type ViewsPerDate = { | 4 | export type ViewsPerDate = { |
5 | date: Date | 5 | date: Date |
@@ -19,7 +19,10 @@ export interface VideoChannel extends Actor { | |||
19 | videosCount?: number | 19 | videosCount?: number |
20 | viewsPerDay?: ViewsPerDate[] // chronologically ordered | 20 | viewsPerDay?: ViewsPerDate[] // chronologically ordered |
21 | 21 | ||
22 | banner?: ActorImage | 22 | banners: ActorImage[] |
23 | |||
24 | // TODO: remove, deprecated in 4.2 | ||
25 | banner: ActorImage | ||
23 | } | 26 | } |
24 | 27 | ||
25 | export interface VideoChannelSummary { | 28 | export interface VideoChannelSummary { |
@@ -28,5 +31,9 @@ export interface VideoChannelSummary { | |||
28 | displayName: string | 31 | displayName: string |
29 | url: string | 32 | url: string |
30 | host: string | 33 | host: string |
31 | avatar?: ActorImage | 34 | |
35 | avatars: ActorImage[] | ||
36 | |||
37 | // TODO: remove, deprecated in 4.2 | ||
38 | avatar: ActorImage | ||
32 | } | 39 | } |
diff --git a/shared/models/videos/editor/index.ts b/shared/models/videos/editor/index.ts new file mode 100644 index 000000000..3436f2c3f --- /dev/null +++ b/shared/models/videos/editor/index.ts | |||
@@ -0,0 +1 @@ | |||
export * from './video-editor-create-edit.model' | |||
diff --git a/shared/models/videos/editor/video-editor-create-edit.model.ts b/shared/models/videos/editor/video-editor-create-edit.model.ts new file mode 100644 index 000000000..36b7c8d55 --- /dev/null +++ b/shared/models/videos/editor/video-editor-create-edit.model.ts | |||
@@ -0,0 +1,42 @@ | |||
1 | export interface VideoEditorCreateEdition { | ||
2 | tasks: VideoEditorTask[] | ||
3 | } | ||
4 | |||
5 | export type VideoEditorTask = | ||
6 | VideoEditorTaskCut | | ||
7 | VideoEditorTaskIntro | | ||
8 | VideoEditorTaskOutro | | ||
9 | VideoEditorTaskWatermark | ||
10 | |||
11 | export interface VideoEditorTaskCut { | ||
12 | name: 'cut' | ||
13 | |||
14 | options: { | ||
15 | start?: number | ||
16 | end?: number | ||
17 | } | ||
18 | } | ||
19 | |||
20 | export interface VideoEditorTaskIntro { | ||
21 | name: 'add-intro' | ||
22 | |||
23 | options: { | ||
24 | file: Blob | string | ||
25 | } | ||
26 | } | ||
27 | |||
28 | export interface VideoEditorTaskOutro { | ||
29 | name: 'add-outro' | ||
30 | |||
31 | options: { | ||
32 | file: Blob | string | ||
33 | } | ||
34 | } | ||
35 | |||
36 | export interface VideoEditorTaskWatermark { | ||
37 | name: 'add-watermark' | ||
38 | |||
39 | options: { | ||
40 | file: Blob | string | ||
41 | } | ||
42 | } | ||
diff --git a/shared/models/videos/index.ts b/shared/models/videos/index.ts index 67614efc9..e8eb227ab 100644 --- a/shared/models/videos/index.ts +++ b/shared/models/videos/index.ts | |||
@@ -3,6 +3,7 @@ export * from './caption' | |||
3 | export * from './change-ownership' | 3 | export * from './change-ownership' |
4 | export * from './channel' | 4 | export * from './channel' |
5 | export * from './comment' | 5 | export * from './comment' |
6 | export * from './editor' | ||
6 | export * from './live' | 7 | export * from './live' |
7 | export * from './file' | 8 | export * from './file' |
8 | export * from './import' | 9 | export * from './import' |
diff --git a/shared/models/videos/transcoding/video-transcoding-fps.model.ts b/shared/models/videos/transcoding/video-transcoding-fps.model.ts index 25fc1c2da..9a330ac94 100644 --- a/shared/models/videos/transcoding/video-transcoding-fps.model.ts +++ b/shared/models/videos/transcoding/video-transcoding-fps.model.ts | |||
@@ -2,6 +2,7 @@ export type VideoTranscodingFPS = { | |||
2 | MIN: number | 2 | MIN: number |
3 | STANDARD: number[] | 3 | STANDARD: number[] |
4 | HD_STANDARD: number[] | 4 | HD_STANDARD: number[] |
5 | AUDIO_MERGE: number | ||
5 | AVERAGE: number | 6 | AVERAGE: number |
6 | MAX: number | 7 | MAX: number |
7 | KEEP_ORIGIN_FPS_RESOLUTION_MIN: number | 8 | KEEP_ORIGIN_FPS_RESOLUTION_MIN: number |
diff --git a/shared/models/videos/transcoding/video-transcoding.model.ts b/shared/models/videos/transcoding/video-transcoding.model.ts index 3a7fb6472..91eacf8dc 100644 --- a/shared/models/videos/transcoding/video-transcoding.model.ts +++ b/shared/models/videos/transcoding/video-transcoding.model.ts | |||
@@ -7,8 +7,11 @@ export type EncoderOptionsBuilderParams = { | |||
7 | 7 | ||
8 | resolution: VideoResolution | 8 | resolution: VideoResolution |
9 | 9 | ||
10 | // Could be null for "merge audio" transcoding | 10 | // If PeerTube applies a filter, transcoding profile must not copy input stream |
11 | fps?: number | 11 | canCopyAudio: boolean |
12 | canCopyVideo: boolean | ||
13 | |||
14 | fps: number | ||
12 | 15 | ||
13 | // Could be undefined if we could not get input bitrate (some RTMP streams for example) | 16 | // Could be undefined if we could not get input bitrate (some RTMP streams for example) |
14 | inputBitrate: number | 17 | inputBitrate: number |
diff --git a/shared/models/videos/video-state.enum.ts b/shared/models/videos/video-state.enum.ts index 09268d2ff..e45e4adc2 100644 --- a/shared/models/videos/video-state.enum.ts +++ b/shared/models/videos/video-state.enum.ts | |||
@@ -6,5 +6,6 @@ export const enum VideoState { | |||
6 | LIVE_ENDED = 5, | 6 | LIVE_ENDED = 5, |
7 | TO_MOVE_TO_EXTERNAL_STORAGE = 6, | 7 | TO_MOVE_TO_EXTERNAL_STORAGE = 6, |
8 | TRANSCODING_FAILED = 7, | 8 | TRANSCODING_FAILED = 7, |
9 | TO_MOVE_TO_EXTERNAL_STORAGE_FAILED = 8 | 9 | TO_MOVE_TO_EXTERNAL_STORAGE_FAILED = 8, |
10 | TO_EDIT = 9 | ||
10 | } | 11 | } |