mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			134 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
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' | 'paused'
 | 
						|
 | 
						|
export type JobType =
 | 
						|
  | 'activitypub-http-unicast'
 | 
						|
  | 'activitypub-http-broadcast'
 | 
						|
  | 'activitypub-http-fetcher'
 | 
						|
  | 'activitypub-follow'
 | 
						|
  | 'video-file-import'
 | 
						|
  | 'video-transcoding'
 | 
						|
  | 'email'
 | 
						|
  | 'video-import'
 | 
						|
  | 'videos-views'
 | 
						|
  | 'activitypub-refresher'
 | 
						|
  | 'video-redundancy'
 | 
						|
  | 'video-live-ending'
 | 
						|
 | 
						|
export interface Job {
 | 
						|
  id: number
 | 
						|
  state: JobState
 | 
						|
  type: JobType
 | 
						|
  data: any
 | 
						|
  error: any
 | 
						|
  createdAt: Date | string
 | 
						|
  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
 | 
						|
 | 
						|
export interface VideoLiveEndingPayload {
 | 
						|
  videoId: number
 | 
						|
}
 |