From 8dc8a34ee8428e7657414115d1c137592efa174d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 23 Apr 2020 09:32:53 +0200 Subject: Avoir some circular dependencies --- shared/models/server/emailer.model.ts | 8 +++ shared/models/server/index.ts | 1 + shared/models/server/job.model.ts | 100 ++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 shared/models/server/emailer.model.ts (limited to 'shared/models') diff --git a/shared/models/server/emailer.model.ts b/shared/models/server/emailer.model.ts new file mode 100644 index 000000000..2d8feda81 --- /dev/null +++ b/shared/models/server/emailer.model.ts @@ -0,0 +1,8 @@ +export type SendEmailOptions = { + to: string[] + subject: string + text: string + + fromDisplayName?: string + replyTo?: string +} diff --git a/shared/models/server/index.ts b/shared/models/server/index.ts index bf61ab270..b0afb2c66 100644 --- a/shared/models/server/index.ts +++ b/shared/models/server/index.ts @@ -2,6 +2,7 @@ export * from './about.model' export * from './contact-form.model' export * from './custom-config.model' export * from './debug.model' +export * from './emailer.model' export * from './job.model' export * from './server-config.model' export * from './server-stats.model' diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts index cf29d20d4..694361276 100644 --- a/shared/models/server/job.model.ts +++ b/shared/models/server/job.model.ts @@ -1,3 +1,7 @@ +import { ContextType } from '@server/helpers/activitypub' +import { SendEmailOptions } from './emailer.model' +import { VideoResolution } from '@shared/models' + export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed' export type JobType = @@ -23,3 +27,99 @@ 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 VideoImportYoutubeDLPayload = { + type: 'youtube-dl' + videoImportId: number + + generateThumbnail: boolean + generatePreview: boolean + + fileExt?: string +} +export type VideoImportTorrentPayload = { + type: 'magnet-uri' | 'torrent-file' + 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 -- cgit v1.2.3