]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/models/server/job.model.ts
Don't use @shared in models
[github/Chocobozzz/PeerTube.git] / shared / models / server / job.model.ts
index cf29d20d40098d05d828017df950512aafa78b5b..c643e60179832ebd2bd7c8755b9b36cdd0883fa2 100644 (file)
@@ -1,3 +1,7 @@
+import { ContextType } from '../activitypub/context'
+import { VideoResolution } from '../videos/video-resolution.enum'
+import { SendEmailOptions } from './emailer.model'
+
 export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed'
 
 export type JobType =
@@ -23,3 +27,102 @@ export interface Job {
   finishedOn: Date | string
   processedOn: Date | string
 }
+
+export type ActivitypubHttpBroadcastPayload = {
+  uris: string[]
+  signatureActorId?: number
+  body: any
+  contextType?: ContextType
+}
+
+export type ActivitypubFollowPayload = {
+  followerActorId: number
+  name: string
+  host: string
+  isAutoFollow?: boolean
+  assertIsChannel?: boolean
+}
+
+export type FetchType = 'activity' | 'video-likes' | 'video-dislikes' | 'video-shares' | 'video-comments' | 'account-playlists'
+export type ActivitypubHttpFetcherPayload = {
+  uri: string
+  type: FetchType
+  videoId?: number
+  accountId?: number
+}
+
+export type ActivitypubHttpUnicastPayload = {
+  uri: string
+  signatureActorId?: number
+  body: any
+  contextType?: ContextType
+}
+
+export type RefreshPayload = {
+  type: 'video' | 'video-playlist' | 'actor'
+  url: string
+}
+
+export type EmailPayload = SendEmailOptions
+
+export type VideoFileImportPayload = {
+  videoUUID: string
+  filePath: string
+}
+
+export type VideoImportTorrentPayloadType = 'magnet-uri' | 'torrent-file'
+export type VideoImportYoutubeDLPayloadType = 'youtube-dl'
+
+export type VideoImportYoutubeDLPayload = {
+  type: VideoImportYoutubeDLPayloadType
+  videoImportId: number
+
+  generateThumbnail: boolean
+  generatePreview: boolean
+
+  fileExt?: string
+}
+export type VideoImportTorrentPayload = {
+  type: VideoImportTorrentPayloadType
+  videoImportId: number
+}
+export type VideoImportPayload = VideoImportYoutubeDLPayload | VideoImportTorrentPayload
+
+export type VideoRedundancyPayload = {
+  videoId: number
+}
+
+// Video transcoding payloads
+
+interface BaseTranscodingPayload {
+  videoUUID: string
+  isNewVideo?: boolean
+}
+
+interface HLSTranscodingPayload extends BaseTranscodingPayload {
+  type: 'hls'
+  isPortraitMode?: boolean
+  resolution: VideoResolution
+  copyCodecs: boolean
+}
+
+export interface NewResolutionTranscodingPayload extends BaseTranscodingPayload {
+  type: 'new-resolution'
+  isPortraitMode?: boolean
+  resolution: VideoResolution
+}
+
+export interface MergeAudioTranscodingPayload extends BaseTranscodingPayload {
+  type: 'merge-audio'
+  resolution: VideoResolution
+}
+
+export interface OptimizeTranscodingPayload extends BaseTranscodingPayload {
+  type: 'optimize'
+}
+
+export type VideoTranscodingPayload =
+  HLSTranscodingPayload
+  | NewResolutionTranscodingPayload
+  | OptimizeTranscodingPayload
+  | MergeAudioTranscodingPayload