]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - shared/models/server/job.model.ts
Correctlu throws an error on manifestIncompatibleCodecsError
[github/Chocobozzz/PeerTube.git] / shared / models / server / job.model.ts
... / ...
CommitLineData
1import { ContextType } from '../activitypub/context'
2import { VideoResolution } from '../videos/video-resolution.enum'
3import { SendEmailOptions } from './emailer.model'
4
5export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' | 'paused'
6
7export type JobType =
8 | 'activitypub-http-unicast'
9 | 'activitypub-http-broadcast'
10 | 'activitypub-http-fetcher'
11 | 'activitypub-follow'
12 | 'video-file-import'
13 | 'video-transcoding'
14 | 'email'
15 | 'video-import'
16 | 'videos-views'
17 | 'activitypub-refresher'
18 | 'video-redundancy'
19 | 'video-live-ending'
20
21export interface Job {
22 id: number
23 state: JobState
24 type: JobType
25 data: any
26 priority: number
27 progress: number
28 error: any
29 createdAt: Date | string
30 finishedOn: Date | string
31 processedOn: Date | string
32}
33
34export type ActivitypubHttpBroadcastPayload = {
35 uris: string[]
36 signatureActorId?: number
37 body: any
38 contextType?: ContextType
39}
40
41export type ActivitypubFollowPayload = {
42 followerActorId: number
43 name: string
44 host: string
45 isAutoFollow?: boolean
46 assertIsChannel?: boolean
47}
48
49export type FetchType = 'activity' | 'video-likes' | 'video-dislikes' | 'video-shares' | 'video-comments' | 'account-playlists'
50export type ActivitypubHttpFetcherPayload = {
51 uri: string
52 type: FetchType
53 videoId?: number
54 accountId?: number
55}
56
57export type ActivitypubHttpUnicastPayload = {
58 uri: string
59 signatureActorId?: number
60 body: any
61 contextType?: ContextType
62}
63
64export type RefreshPayload = {
65 type: 'video' | 'video-playlist' | 'actor'
66 url: string
67}
68
69export type EmailPayload = SendEmailOptions
70
71export type VideoFileImportPayload = {
72 videoUUID: string
73 filePath: string
74}
75
76export type VideoImportTorrentPayloadType = 'magnet-uri' | 'torrent-file'
77export type VideoImportYoutubeDLPayloadType = 'youtube-dl'
78
79export type VideoImportYoutubeDLPayload = {
80 type: VideoImportYoutubeDLPayloadType
81 videoImportId: number
82
83 generateThumbnail: boolean
84 generatePreview: boolean
85 fileExt?: string
86}
87export type VideoImportTorrentPayload = {
88 type: VideoImportTorrentPayloadType
89 videoImportId: number
90}
91export type VideoImportPayload = VideoImportYoutubeDLPayload | VideoImportTorrentPayload
92
93export type VideoRedundancyPayload = {
94 videoId: number
95}
96
97// Video transcoding payloads
98
99interface BaseTranscodingPayload {
100 videoUUID: string
101 isNewVideo?: boolean
102}
103
104export interface HLSTranscodingPayload extends BaseTranscodingPayload {
105 type: 'new-resolution-to-hls'
106 isPortraitMode?: boolean
107 resolution: VideoResolution
108 copyCodecs: boolean
109}
110
111export interface NewResolutionTranscodingPayload extends BaseTranscodingPayload {
112 type: 'new-resolution-to-webtorrent'
113 isPortraitMode?: boolean
114 resolution: VideoResolution
115}
116
117export interface MergeAudioTranscodingPayload extends BaseTranscodingPayload {
118 type: 'merge-audio-to-webtorrent'
119 resolution: VideoResolution
120}
121
122export interface OptimizeTranscodingPayload extends BaseTranscodingPayload {
123 type: 'optimize-to-webtorrent'
124}
125
126export type VideoTranscodingPayload =
127 HLSTranscodingPayload
128 | NewResolutionTranscodingPayload
129 | OptimizeTranscodingPayload
130 | MergeAudioTranscodingPayload
131
132export interface VideoLiveEndingPayload {
133 videoId: number
134}