X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fvideos%2Fvideo.model.ts;h=d9765dbd64e3b636c1c244b37ecc5fc62180faa7;hb=26e3e98ff0e222a9fb9226938ac6902af77921bd;hp=2e35f005c97d2feab42755a2164f09719565ed14;hpb=4771e0008dd26eadbb7eaff64255a6ec914fdadb;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/videos/video.model.ts b/shared/models/videos/video.model.ts index 2e35f005c..d9765dbd6 100644 --- a/shared/models/videos/video.model.ts +++ b/shared/models/videos/video.model.ts @@ -1,23 +1,89 @@ +import { Account, AccountSummary } from '../actors' +import { VideoChannel, VideoChannelSummary } from './channel/video-channel.model' +import { VideoFile } from './file' +import { VideoConstant } from './video-constant.model' +import { VideoPrivacy } from './video-privacy.enum' +import { VideoScheduleUpdate } from './video-schedule-update.model' +import { VideoState } from './video-state.enum' +import { VideoStreamingPlaylist } from './video-streaming-playlist.model' + export interface Video { - id: string - author: string - createdAt: Date - categoryLabel: string - category: number - licenceLabel: string - licence: number - languageLabel: string - language: number + id: number + uuid: string + shortUUID: string + + createdAt: Date | string + updatedAt: Date | string + publishedAt: Date | string + originallyPublishedAt: Date | string + category: VideoConstant + licence: VideoConstant + language: VideoConstant + privacy: VideoConstant description: string duration: number isLocal: boolean - magnetUri: string name: string - podHost: string - tags: string[] + + isLive: boolean + thumbnailPath: string + thumbnailUrl?: string + + previewPath: string + previewUrl?: string + + embedPath: string + embedUrl?: string + + url: string + views: number + viewers: 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 + + blacklisted?: boolean + blacklistedReason?: string + + blockedOwner?: boolean + blockedServer?: boolean + + files?: VideoFile[] + streamingPlaylists?: VideoStreamingPlaylist[] +} + +export interface VideoDetails extends Video { + descriptionPath: string + support: string + channel: VideoChannel + account: Account + tags: string[] + commentsEnabled: boolean + downloadEnabled: boolean + + // Not optional in details (unlike in parent Video) + waitTranscoding: boolean + state: VideoConstant + + trackerUrls: string[] + + files: VideoFile[] + streamingPlaylists: VideoStreamingPlaylist[] }