X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fvideos%2Fvideo.model.ts;h=df800461c0b7095e4a58ca8d4a510c4926ffb57c;hb=b427febb4d5cebf03b815bca2c59af6e82491569;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..df800461c 100644 --- a/shared/models/videos/video.model.ts +++ b/shared/models/videos/video.model.ts @@ -1,23 +1,96 @@ +import { VideoResolution, VideoState } from '../../index' +import { Account } from '../actors' +import { Avatar } from '../avatars/avatar.model' +import { VideoChannel } from './channel/video-channel.model' +import { VideoPrivacy } from './video-privacy.enum' +import { VideoScheduleUpdate } from './video-schedule-update.model' +import { VideoConstant } from './video-constant.model' +import { VideoStreamingPlaylist } from './video-streaming-playlist.model' + +export interface VideoFile { + magnetUri: string + resolution: VideoConstant + size: number // Bytes + torrentUrl: string + torrentDownloadUrl: string + fileUrl: string + fileDownloadUrl: string + fps: number +} + +export interface VideoChannelAttribute { + id: number + uuid: string + name: string + displayName: string + url: string + host: string + avatar?: Avatar +} + +export interface AccountAttribute { + id: number + uuid: string + name: string + displayName: string + url: string + host: string + avatar?: Avatar +} + 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 + 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[] thumbnailPath: string + previewPath: string + embedPath: string views: number likes: number dislikes: number nsfw: boolean + + waitTranscoding?: boolean + state?: VideoConstant + scheduledUpdate?: VideoScheduleUpdate + + blacklisted?: boolean + blacklistedReason?: string + + account: AccountAttribute + channel: VideoChannelAttribute + + userHistory?: { + currentTime: number + } +} + +export interface VideoDetails extends Video { + descriptionPath: string + support: string + channel: VideoChannel + tags: string[] + files: VideoFile[] + account: Account + commentsEnabled: boolean + downloadEnabled: boolean + + // Not optional in details (unlike in Video) + waitTranscoding: boolean + state: VideoConstant + + trackerUrls: string[] + + streamingPlaylists: VideoStreamingPlaylist[] }