import { ContextType } from '../activitypub/context'
+import { VideoState } from '../videos'
+import { VideoStudioTaskCut } from '../videos/studio'
import { VideoResolution } from '../videos/file/video-resolution.enum'
import { SendEmailOptions } from './emailer.model'
export type JobType =
| 'activitypub-http-unicast'
| 'activitypub-http-broadcast'
+ | 'activitypub-http-broadcast-parallel'
| 'activitypub-http-fetcher'
| 'activitypub-cleaner'
| 'activitypub-follow'
| 'video-redundancy'
| 'video-live-ending'
| 'actor-keys'
+ | 'manage-video-torrent'
| 'move-to-object-storage'
+ | 'video-studio-edition'
export interface Job {
id: number
export type ActivitypubHttpBroadcastPayload = {
uris: string[]
- signatureActorId?: number
+ contextType: ContextType
body: any
- contextType?: ContextType
+ signatureActorId?: number
}
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
export type ActivitypubHttpUnicastPayload = {
uri: string
+ contextType: ContextType
signatureActorId?: number
body: object
- contextType?: ContextType
}
export type RefreshPayload = {
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 {
export interface VideoLiveEndingPayload {
videoId: number
+ publishedAt: string
+ liveSessionId: number
+ streamingPlaylistId: number
+
+ replayDirectory?: string
}
export interface ActorKeysPayload {
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[]
}