aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/models/server/job.model.ts
diff options
context:
space:
mode:
Diffstat (limited to 'shared/models/server/job.model.ts')
-rw-r--r--shared/models/server/job.model.ts100
1 files changed, 100 insertions, 0 deletions
diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts
index cf29d20d4..694361276 100644
--- a/shared/models/server/job.model.ts
+++ b/shared/models/server/job.model.ts
@@ -1,3 +1,7 @@
1import { ContextType } from '@server/helpers/activitypub'
2import { SendEmailOptions } from './emailer.model'
3import { VideoResolution } from '@shared/models'
4
1export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' 5export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed'
2 6
3export type JobType = 7export type JobType =
@@ -23,3 +27,99 @@ export interface Job {
23 finishedOn: Date | string 27 finishedOn: Date | string
24 processedOn: Date | string 28 processedOn: Date | string
25} 29}
30
31export type ActivitypubHttpBroadcastPayload = {
32 uris: string[]
33 signatureActorId?: number
34 body: any
35 contextType?: ContextType
36}
37
38export type ActivitypubFollowPayload = {
39 followerActorId: number
40 name: string
41 host: string
42 isAutoFollow?: boolean
43 assertIsChannel?: boolean
44}
45
46export type FetchType = 'activity' | 'video-likes' | 'video-dislikes' | 'video-shares' | 'video-comments' | 'account-playlists'
47export type ActivitypubHttpFetcherPayload = {
48 uri: string
49 type: FetchType
50 videoId?: number
51 accountId?: number
52}
53
54export type ActivitypubHttpUnicastPayload = {
55 uri: string
56 signatureActorId?: number
57 body: any
58 contextType?: ContextType
59}
60
61export type RefreshPayload = {
62 type: 'video' | 'video-playlist' | 'actor'
63 url: string
64}
65
66export type EmailPayload = SendEmailOptions
67
68export type VideoFileImportPayload = {
69 videoUUID: string
70 filePath: string
71}
72
73export type VideoImportYoutubeDLPayload = {
74 type: 'youtube-dl'
75 videoImportId: number
76
77 generateThumbnail: boolean
78 generatePreview: boolean
79
80 fileExt?: string
81}
82export type VideoImportTorrentPayload = {
83 type: 'magnet-uri' | 'torrent-file'
84 videoImportId: number
85}
86export type VideoImportPayload = VideoImportYoutubeDLPayload | VideoImportTorrentPayload
87
88export type VideoRedundancyPayload = {
89 videoId: number
90}
91
92// Video transcoding payloads
93
94interface BaseTranscodingPayload {
95 videoUUID: string
96 isNewVideo?: boolean
97}
98
99interface HLSTranscodingPayload extends BaseTranscodingPayload {
100 type: 'hls'
101 isPortraitMode?: boolean
102 resolution: VideoResolution
103 copyCodecs: boolean
104}
105
106export interface NewResolutionTranscodingPayload extends BaseTranscodingPayload {
107 type: 'new-resolution'
108 isPortraitMode?: boolean
109 resolution: VideoResolution
110}
111
112export interface MergeAudioTranscodingPayload extends BaseTranscodingPayload {
113 type: 'merge-audio'
114 resolution: VideoResolution
115}
116
117export interface OptimizeTranscodingPayload extends BaseTranscodingPayload {
118 type: 'optimize'
119}
120
121export type VideoTranscodingPayload =
122 HLSTranscodingPayload
123 | NewResolutionTranscodingPayload
124 | OptimizeTranscodingPayload
125 | MergeAudioTranscodingPayload