]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/models/server/job.model.ts
Display avatar in embed poster
[github/Chocobozzz/PeerTube.git] / shared / models / server / job.model.ts
index d16ac1032ff890cb50de51a779356df970faa262..d0293f542fcc7b7406bb1ddf31b1857e2433bcdd 100644 (file)
@@ -1,5 +1,6 @@
 import { ContextType } from '../activitypub/context'
-import { VideoResolution } from '../videos/video-resolution.enum'
+import { VideoEditorTaskCut } from '../videos/editor'
+import { VideoResolution } from '../videos/file/video-resolution.enum'
 import { SendEmailOptions } from './emailer.model'
 
 export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' | 'paused'
@@ -8,21 +9,26 @@ export type JobType =
   | 'activitypub-http-unicast'
   | 'activitypub-http-broadcast'
   | 'activitypub-http-fetcher'
+  | 'activitypub-cleaner'
   | 'activitypub-follow'
   | 'video-file-import'
   | 'video-transcoding'
   | 'email'
   | 'video-import'
-  | 'videos-views'
+  | 'videos-views-stats'
   | 'activitypub-refresher'
   | 'video-redundancy'
   | 'video-live-ending'
+  | 'actor-keys'
+  | 'move-to-object-storage'
+  | 'video-edition'
 
 export interface Job {
   id: number
   state: JobState
   type: JobType
   data: any
+  priority: number
   progress: number
   error: any
   createdAt: Date | string
@@ -50,13 +56,12 @@ export type ActivitypubHttpFetcherPayload = {
   uri: string
   type: FetchType
   videoId?: number
-  accountId?: number
 }
 
 export type ActivitypubHttpUnicastPayload = {
   uri: string
   signatureActorId?: number
-  body: any
+  body: object
   contextType?: ContextType
 }
 
@@ -79,8 +84,6 @@ export type VideoImportYoutubeDLPayload = {
   type: VideoImportYoutubeDLPayloadType
   videoImportId: number
 
-  generateThumbnail: boolean
-  generatePreview: boolean
   fileExt?: string
 }
 export type VideoImportTorrentPayload = {
@@ -102,20 +105,30 @@ interface BaseTranscodingPayload {
 
 export interface HLSTranscodingPayload extends BaseTranscodingPayload {
   type: 'new-resolution-to-hls'
-  isPortraitMode?: boolean
   resolution: VideoResolution
   copyCodecs: boolean
+
+  hasAudio: boolean
+  isPortraitMode?: boolean
+
+  autoDeleteWebTorrentIfNeeded: boolean
+  isMaxQuality: boolean
 }
 
-export interface NewResolutionTranscodingPayload extends BaseTranscodingPayload {
+export interface NewWebTorrentResolutionTranscodingPayload extends BaseTranscodingPayload {
   type: 'new-resolution-to-webtorrent'
-  isPortraitMode?: boolean
   resolution: VideoResolution
+
+  hasAudio: boolean
+  createHLSIfNeeded: boolean
+
+  isPortraitMode?: boolean
 }
 
 export interface MergeAudioTranscodingPayload extends BaseTranscodingPayload {
   type: 'merge-audio-to-webtorrent'
   resolution: VideoResolution
+  createHLSIfNeeded: true
 }
 
 export interface OptimizeTranscodingPayload extends BaseTranscodingPayload {
@@ -124,10 +137,60 @@ export interface OptimizeTranscodingPayload extends BaseTranscodingPayload {
 
 export type VideoTranscodingPayload =
   HLSTranscodingPayload
-  | NewResolutionTranscodingPayload
+  | NewWebTorrentResolutionTranscodingPayload
   | OptimizeTranscodingPayload
   | MergeAudioTranscodingPayload
 
 export interface VideoLiveEndingPayload {
   videoId: number
 }
+
+export interface ActorKeysPayload {
+  actorId: number
+}
+
+export interface DeleteResumableUploadMetaFilePayload {
+  filepath: string
+}
+
+export interface MoveObjectStoragePayload {
+  videoUUID: string
+  isNewVideo: boolean
+}
+
+export type VideoEditorTaskCutPayload = VideoEditorTaskCut
+
+export type VideoEditorTaskIntroPayload = {
+  name: 'add-intro'
+
+  options: {
+    file: string
+  }
+}
+
+export type VideoEditorTaskOutroPayload = {
+  name: 'add-outro'
+
+  options: {
+    file: string
+  }
+}
+
+export type VideoEditorTaskWatermarkPayload = {
+  name: 'add-watermark'
+
+  options: {
+    file: string
+  }
+}
+
+export type VideoEditionTaskPayload =
+  VideoEditorTaskCutPayload |
+  VideoEditorTaskIntroPayload |
+  VideoEditorTaskOutroPayload |
+  VideoEditorTaskWatermarkPayload
+
+export interface VideoEditionPayload {
+  videoUUID: string
+  tasks: VideoEditionTaskPayload[]
+}