1
0
Fork 0
peertube/shared/models/videos/video.model.ts
Chocobozzz 51353d9a03 Refactor video views
Introduce viewers attribute for live videos
Count views for live videos
Reduce delay to see the viewer update for lives
Add ability to configure video views buffer interval and view ip
expiration
2021-11-09 15:00:31 +01:00

90 lines
2 KiB
TypeScript

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 { 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<number>
licence: VideoConstant<number>
language: VideoConstant<string>
privacy: VideoConstant<VideoPrivacy>
description: string
duration: number
isLocal: boolean
name: string
isLive: boolean
thumbnailPath: string
thumbnailUrl?: string
previewPath: string
previewUrl?: string
embedPath: string
embedUrl?: string
url: string
views: number
// If live
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<VideoState>
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<VideoState>
trackerUrls: string[]
files: VideoFile[]
streamingPlaylists: VideoStreamingPlaylist[]
}