X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fserver%2Fjob.model.ts;h=9c0b5ea569256851d6587ab5900dcdcdf66b10bd;hb=ca68986083edfc530985f47007a099b94cd65325;hp=d81b7269635bea6a47412769ae12dacebe7b2640;hpb=57e4e1c1a95c3a81a967f54ecc2a510d8b0e129c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts index d81b72696..9c0b5ea56 100644 --- a/shared/models/server/job.model.ts +++ b/shared/models/server/job.model.ts @@ -1,32 +1,38 @@ import { ContextType } from '../activitypub/context' -import { VideoEditorTaskCut } from '../videos/editor' +import { VideoState } from '../videos' import { VideoResolution } from '../videos/file/video-resolution.enum' +import { VideoStudioTaskCut } from '../videos/studio' import { SendEmailOptions } from './emailer.model' -export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' | 'paused' +export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' | 'paused' | 'waiting-children' 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-stats' + | 'activitypub-http-broadcast-parallel' + | 'activitypub-http-broadcast' + | 'activitypub-http-fetcher' + | 'activitypub-http-unicast' | 'activitypub-refresher' - | 'video-redundancy' - | 'video-live-ending' | 'actor-keys' + | 'after-video-channel-import' + | 'email' + | 'federate-video' | 'manage-video-torrent' | 'move-to-object-storage' - | 'video-edition' + | 'notify' + | 'video-channel-import' + | 'video-file-import' + | 'video-import' + | 'video-live-ending' + | 'video-redundancy' + | 'video-studio-edition' + | 'video-transcoding' + | 'videos-views-stats' export interface Job { - id: number - state: JobState + id: number | string + state: JobState | 'unknown' type: JobType data: any priority: number @@ -39,9 +45,9 @@ export interface Job { export type ActivitypubHttpBroadcastPayload = { uris: string[] - signatureActorId?: number + contextType: ContextType body: any - contextType?: ContextType + signatureActorId?: number } export type ActivitypubFollowPayload = { @@ -61,9 +67,9 @@ export type ActivitypubHttpFetcherPayload = { export type ActivitypubHttpUnicastPayload = { uri: string + contextType: ContextType signatureActorId?: number body: object - contextType?: ContextType } export type RefreshPayload = { @@ -78,20 +84,32 @@ export type VideoFileImportPayload = { filePath: string } +// --------------------------------------------------------------------------- + export type VideoImportTorrentPayloadType = 'magnet-uri' | 'torrent-file' export type VideoImportYoutubeDLPayloadType = 'youtube-dl' -export type VideoImportYoutubeDLPayload = { +export interface VideoImportYoutubeDLPayload { type: VideoImportYoutubeDLPayloadType videoImportId: number fileExt?: string } -export type VideoImportTorrentPayload = { + +export interface VideoImportTorrentPayload { type: VideoImportTorrentPayloadType videoImportId: number } -export type VideoImportPayload = VideoImportYoutubeDLPayload | VideoImportTorrentPayload + +export type VideoImportPayload = (VideoImportYoutubeDLPayload | VideoImportTorrentPayload) & { + preventException: boolean +} + +export interface VideoImportPreventExceptionResult { + resultType: 'success' | 'error' +} + +// --------------------------------------------------------------------------- export type VideoRedundancyPayload = { videoId: number @@ -124,7 +142,6 @@ export interface HLSTranscodingPayload extends BaseTranscodingPayload { copyCodecs: boolean hasAudio: boolean - isPortraitMode?: boolean autoDeleteWebTorrentIfNeeded: boolean isMaxQuality: boolean @@ -136,8 +153,6 @@ export interface NewWebTorrentResolutionTranscodingPayload extends BaseTranscodi hasAudio: boolean createHLSIfNeeded: boolean - - isPortraitMode?: boolean } export interface MergeAudioTranscodingPayload extends BaseTranscodingPayload { @@ -158,6 +173,11 @@ export type VideoTranscodingPayload = export interface VideoLiveEndingPayload { videoId: number + publishedAt: string + liveSessionId: number + streamingPlaylistId: number + + replayDirectory?: string } export interface ActorKeysPayload { @@ -171,11 +191,12 @@ export interface DeleteResumableUploadMetaFilePayload { export interface MoveObjectStoragePayload { videoUUID: string isNewVideo: boolean + previousVideoState: VideoState } -export type VideoEditorTaskCutPayload = VideoEditorTaskCut +export type VideoStudioTaskCutPayload = VideoStudioTaskCut -export type VideoEditorTaskIntroPayload = { +export type VideoStudioTaskIntroPayload = { name: 'add-intro' options: { @@ -183,7 +204,7 @@ export type VideoEditorTaskIntroPayload = { } } -export type VideoEditorTaskOutroPayload = { +export type VideoStudioTaskOutroPayload = { name: 'add-outro' options: { @@ -191,7 +212,7 @@ export type VideoEditorTaskOutroPayload = { } } -export type VideoEditorTaskWatermarkPayload = { +export type VideoStudioTaskWatermarkPayload = { name: 'add-watermark' options: { @@ -199,13 +220,41 @@ export type VideoEditorTaskWatermarkPayload = { } } -export type VideoEditionTaskPayload = - VideoEditorTaskCutPayload | - VideoEditorTaskIntroPayload | - VideoEditorTaskOutroPayload | - VideoEditorTaskWatermarkPayload +export type VideoStudioTaskPayload = + VideoStudioTaskCutPayload | + VideoStudioTaskIntroPayload | + VideoStudioTaskOutroPayload | + VideoStudioTaskWatermarkPayload -export interface VideoEditionPayload { +export interface VideoStudioEditionPayload { videoUUID: string - tasks: VideoEditionTaskPayload[] + tasks: VideoStudioTaskPayload[] +} + +// --------------------------------------------------------------------------- + +export interface VideoChannelImportPayload { + externalChannelUrl: string + videoChannelId: number + + partOfChannelSyncId?: number +} + +export interface AfterVideoChannelImportPayload { + channelSyncId: number +} + +// --------------------------------------------------------------------------- + +export type NotifyPayload = + { + action: 'new-video' + videoUUID: string + } + +// --------------------------------------------------------------------------- + +export interface FederateVideoPayload { + videoUUID: string + isNewVideo: boolean }