X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fvideos%2Fvideo.model.ts;h=26cb595e73ab0acf305ca41f7c04e72d3d3fcac3;hb=df1db951c512a58110171d046ef367789df02733;hp=8dfa96069283529a1bbd0ef5634f7b1d00e79dbb;hpb=26b7305a232e547709f433a6edf700bf495935d8;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/videos/video.model.ts b/shared/models/videos/video.model.ts index 8dfa96069..26cb595e7 100644 --- a/shared/models/videos/video.model.ts +++ b/shared/models/videos/video.model.ts @@ -1,28 +1,21 @@ -import { VideoResolution, VideoState } from '../../index' -import { Account } from '../actors' -import { Avatar } from '../avatars/avatar.model' -import { VideoChannel } from './video-channel.model' +import { Account, AccountSummary } from '../actors' +import { VideoChannel, VideoChannelSummary } from './channel/video-channel.model' +import { VideoConstant } from './video-constant.model' +import { VideoFile } from './video-file.model' import { VideoPrivacy } from './video-privacy.enum' import { VideoScheduleUpdate } from './video-schedule-update.model' -import { VideoConstant } from './video-constant.model' - -export interface VideoFile { - magnetUri: string - resolution: VideoConstant - size: number // Bytes - torrentUrl: string - torrentDownloadUrl: string - fileUrl: string - fileDownloadUrl: string - fps: number -} +import { VideoState } from './video-state.enum' +import { VideoStreamingPlaylist } from './video-streaming-playlist.model' export interface Video { id: number uuid: string + shortUUID: string + createdAt: Date | string updatedAt: Date | string publishedAt: Date | string + originallyPublishedAt: Date | string category: VideoConstant licence: VideoConstant language: VideoConstant @@ -31,14 +24,35 @@ export interface Video { duration: number isLocal: boolean name: string + + isLive: boolean + thumbnailPath: string + thumbnailUrl?: string + previewPath: string + previewUrl?: string + embedPath: string + embedUrl?: string + + url: string + views: number likes: number dislikes: number nsfw: boolean + account: AccountSummary + channel: VideoChannelSummary + + userHistory?: { + currentTime: number + } + + pluginData?: any + + // Additional attributes dependending on the query waitTranscoding?: boolean state?: VideoConstant scheduledUpdate?: VideoScheduleUpdate @@ -46,37 +60,28 @@ export interface Video { blacklisted?: boolean blacklistedReason?: string - account: { - id: number - uuid: string - name: string - displayName: string - url: string - host: string - avatar: Avatar - } + blockedOwner?: boolean + blockedServer?: boolean - channel: { - id: number - uuid: string - name: string - displayName: string - url: string - host: string - avatar: Avatar - } + files?: VideoFile[] + streamingPlaylists?: VideoStreamingPlaylist[] } export interface VideoDetails extends Video { descriptionPath: string support: string channel: VideoChannel - tags: string[] - files: VideoFile[] account: Account + tags: string[] commentsEnabled: boolean + downloadEnabled: boolean - // Not optional in details (unlike in Video) + // Not optional in details (unlike in parent Video) waitTranscoding: boolean state: VideoConstant + + trackerUrls: string[] + + files: VideoFile[] + streamingPlaylists: VideoStreamingPlaylist[] }