X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fserver%2Fjob.model.ts;h=9370cf011caedc0bbda00f887259438585c7e9ff;hb=4ec52d04dcc5d664612331f8e08d7d90da990415;hp=e4acfee8d0ab459be2ceea9510bc24bf06825170;hpb=4024c44f9027a32809931de0692d40d001df721c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts index e4acfee8d..9370cf011 100644 --- a/shared/models/server/job.model.ts +++ b/shared/models/server/job.model.ts @@ -1,5 +1,7 @@ import { ContextType } from '../activitypub/context' -import { VideoResolution } from '../videos/video-resolution.enum' +import { VideoState } from '../videos' +import { VideoStudioTaskCut } from '../videos/studio' +import { VideoResolution } from '../videos/file/video-resolution.enum' import { SendEmailOptions } from './emailer.model' export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' | 'paused' @@ -14,11 +16,14 @@ export type JobType = | 'video-transcoding' | 'email' | 'video-import' - | 'videos-views' + | 'videos-views-stats' | 'activitypub-refresher' | 'video-redundancy' | 'video-live-ending' | 'actor-keys' + | 'manage-video-torrent' + | 'move-to-object-storage' + | 'video-studio-edition' export interface Job { id: number @@ -35,9 +40,9 @@ export interface Job { export type ActivitypubHttpBroadcastPayload = { uris: string[] - signatureActorId?: number + contextType: ContextType body: any - contextType?: ContextType + signatureActorId?: number } export type ActivitypubFollowPayload = { @@ -48,19 +53,18 @@ export type ActivitypubFollowPayload = { assertIsChannel?: boolean } -export type FetchType = 'activity' | 'video-likes' | 'video-dislikes' | 'video-shares' | 'video-comments' | 'account-playlists' +export type FetchType = 'activity' | 'video-shares' | 'video-comments' | 'account-playlists' export type ActivitypubHttpFetcherPayload = { uri: string type: FetchType videoId?: number - accountId?: number } export type ActivitypubHttpUnicastPayload = { uri: string + contextType: ContextType signatureActorId?: number body: object - contextType?: ContextType } export type RefreshPayload = { @@ -94,6 +98,20 @@ export type VideoRedundancyPayload = { videoId: number } +export type ManageVideoTorrentPayload = + { + action: 'create' + videoId: number + videoFileId: number + } | { + action: 'update-metadata' + + videoId?: number + streamingPlaylistId?: number + + videoFileId: number + } + // Video transcoding payloads interface BaseTranscodingPayload { @@ -103,21 +121,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 { @@ -126,14 +153,64 @@ export interface OptimizeTranscodingPayload extends BaseTranscodingPayload { export type VideoTranscodingPayload = HLSTranscodingPayload - | NewResolutionTranscodingPayload + | NewWebTorrentResolutionTranscodingPayload | OptimizeTranscodingPayload | MergeAudioTranscodingPayload export interface VideoLiveEndingPayload { videoId: number + publishedAt: string + + replayDirectory?: string } export interface ActorKeysPayload { actorId: number } + +export interface DeleteResumableUploadMetaFilePayload { + filepath: string +} + +export interface MoveObjectStoragePayload { + videoUUID: string + isNewVideo: boolean + previousVideoState: VideoState +} + +export type VideoStudioTaskCutPayload = VideoStudioTaskCut + +export type VideoStudioTaskIntroPayload = { + name: 'add-intro' + + options: { + file: string + } +} + +export type VideoStudioTaskOutroPayload = { + name: 'add-outro' + + options: { + file: string + } +} + +export type VideoStudioTaskWatermarkPayload = { + name: 'add-watermark' + + options: { + file: string + } +} + +export type VideoStudioTaskPayload = + VideoStudioTaskCutPayload | + VideoStudioTaskIntroPayload | + VideoStudioTaskOutroPayload | + VideoStudioTaskWatermarkPayload + +export interface VideoStudioEditionPayload { + videoUUID: string + tasks: VideoStudioTaskPayload[] +}