MVideoWithRights
} from '../../types/models'
import { MThumbnail } from '../../types/models/video/thumbnail'
-import { MVideoFile, MVideoFileRedundanciesOpt, MVideoFileStreamingPlaylistVideo } from '../../types/models/video/video-file'
+import { MVideoFile, MVideoFileStreamingPlaylistVideo } from '../../types/models/video/video-file'
import { VideoAbuseModel } from '../abuse/video-abuse'
import { AccountModel } from '../account/account'
import { AccountVideoRateModel } from '../account/account-video-rate'
+import { UserModel } from '../account/user'
import { UserVideoHistoryModel } from '../account/user-video-history'
import { ActorModel } from '../activitypub/actor'
import { AvatarModel } from '../avatar/avatar'
import { VideoStreamingPlaylistModel } from './video-streaming-playlist'
import { VideoTagModel } from './video-tag'
import { VideoViewModel } from './video-view'
-import { UserModel } from '../account/user'
export enum ScopeNames {
AVAILABLE_FOR_LIST_IDS = 'AVAILABLE_FOR_LIST_IDS',
videoPlaylistId?: number
- withFiles?: boolean
-
withAccountBlockerIds?: number[]
}
}
}
- if (options.withFiles === true) {
- include.push({
- model: VideoFileModel,
- required: true
- })
- }
-
if (options.videoPlaylistId) {
include.push({
model: VideoPlaylistElementModel.unscoped(),
const trendingDays = options.sort.endsWith('trending')
? CONFIG.TRENDING.VIDEOS.INTERVAL_DAYS
: undefined
+ const hot = options.sort.endsWith('hot')
const serverActor = await getServerActor()
user: options.user,
historyOfUser: options.historyOfUser,
trendingDays,
+ hot,
search: options.search
}
const avatarKeys = [ 'id', 'filename', 'fileUrl', 'onDisk', 'createdAt', 'updatedAt' ]
const actorKeys = [ 'id', 'preferredUsername', 'url', 'serverId', 'avatarId' ]
const serverKeys = [ 'id', 'host' ]
- const videoFileKeys = [ 'id', 'createdAt', 'updatedAt', 'resolution', 'size', 'extname', 'infoHash', 'fps', 'videoId' ]
- const videoStreamingPlaylistKeys = [ 'id' ]
+ const videoFileKeys = [
+ 'id',
+ 'createdAt',
+ 'updatedAt',
+ 'resolution',
+ 'size',
+ 'extname',
+ 'infoHash',
+ 'fps',
+ 'videoId',
+ 'videoStreamingPlaylistId'
+ ]
+ const videoStreamingPlaylistKeys = [ 'id', 'type', 'playlistUrl' ]
const videoKeys = [
'id',
'uuid',
getFormattedVideoFilesJSON (): VideoFile[] {
const { baseUrlHttp, baseUrlWs } = this.getBaseUrls()
- let files: MVideoFileRedundanciesOpt[] = []
+ let files: VideoFile[] = []
if (Array.isArray(this.VideoFiles)) {
- files = files.concat(this.VideoFiles)
+ const result = videoFilesModelToFormattedJSON(this, baseUrlHttp, baseUrlWs, this.VideoFiles)
+ files = files.concat(result)
}
for (const p of (this.VideoStreamingPlaylists || [])) {
- files = files.concat(p.VideoFiles || [])
+ p.Video = this
+
+ const result = videoFilesModelToFormattedJSON(p, baseUrlHttp, baseUrlWs, p.VideoFiles)
+ files = files.concat(result)
}
- return videoFilesModelToFormattedJSON(this, baseUrlHttp, baseUrlWs, files)
+ return files
}
toActivityPubObject (this: MVideoAP): VideoObject {