Fix rss feed with HLS videos

This commit is contained in:
Chocobozzz 2021-01-27 16:42:13 +01:00
parent 00b87c5791
commit 7a4994873c
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 24 additions and 15 deletions

View File

@ -472,6 +472,8 @@ function wrapForAPIResults (baseQuery: string, replacements: any, options: Build
'"VideoFiles"."videoId"': '"VideoFiles.videoId"', '"VideoFiles"."videoId"': '"VideoFiles.videoId"',
'"VideoStreamingPlaylists"."id"': '"VideoStreamingPlaylists.id"', '"VideoStreamingPlaylists"."id"': '"VideoStreamingPlaylists.id"',
'"VideoStreamingPlaylists"."playlistUrl"': '"VideoStreamingPlaylists.playlistUrl"',
'"VideoStreamingPlaylists"."type"': '"VideoStreamingPlaylists.type"',
'"VideoStreamingPlaylists->VideoFiles"."id"': '"VideoStreamingPlaylists.VideoFiles.id"', '"VideoStreamingPlaylists->VideoFiles"."id"': '"VideoStreamingPlaylists.VideoFiles.id"',
'"VideoStreamingPlaylists->VideoFiles"."createdAt"': '"VideoStreamingPlaylists.VideoFiles.createdAt"', '"VideoStreamingPlaylists->VideoFiles"."createdAt"': '"VideoStreamingPlaylists.VideoFiles.createdAt"',
'"VideoStreamingPlaylists->VideoFiles"."updatedAt"': '"VideoStreamingPlaylists.VideoFiles.updatedAt"', '"VideoStreamingPlaylists->VideoFiles"."updatedAt"': '"VideoStreamingPlaylists.VideoFiles.updatedAt"',
@ -480,6 +482,7 @@ function wrapForAPIResults (baseQuery: string, replacements: any, options: Build
'"VideoStreamingPlaylists->VideoFiles"."extname"': '"VideoStreamingPlaylists.VideoFiles.extname"', '"VideoStreamingPlaylists->VideoFiles"."extname"': '"VideoStreamingPlaylists.VideoFiles.extname"',
'"VideoStreamingPlaylists->VideoFiles"."infoHash"': '"VideoStreamingPlaylists.VideoFiles.infoHash"', '"VideoStreamingPlaylists->VideoFiles"."infoHash"': '"VideoStreamingPlaylists.VideoFiles.infoHash"',
'"VideoStreamingPlaylists->VideoFiles"."fps"': '"VideoStreamingPlaylists.VideoFiles.fps"', '"VideoStreamingPlaylists->VideoFiles"."fps"': '"VideoStreamingPlaylists.VideoFiles.fps"',
'"VideoStreamingPlaylists->VideoFiles"."videoStreamingPlaylistId"': '"VideoStreamingPlaylists.VideoFiles.videoStreamingPlaylistId"',
'"VideoStreamingPlaylists->VideoFiles"."videoId"': '"VideoStreamingPlaylists.VideoFiles.videoId"' '"VideoStreamingPlaylists->VideoFiles"."videoId"': '"VideoStreamingPlaylists.VideoFiles.videoId"'
}) })
} }

View File

@ -152,8 +152,6 @@ export type ForAPIOptions = {
videoPlaylistId?: number videoPlaylistId?: number
withFiles?: boolean
withAccountBlockerIds?: number[] withAccountBlockerIds?: number[]
} }
@ -220,13 +218,6 @@ export type AvailableForListIDsOptions = {
} }
} }
if (options.withFiles === true) {
include.push({
model: VideoFileModel,
required: true
})
}
if (options.videoPlaylistId) { if (options.videoPlaylistId) {
include.push({ include.push({
model: VideoPlaylistElementModel.unscoped(), model: VideoPlaylistElementModel.unscoped(),
@ -1622,8 +1613,19 @@ export class VideoModel extends Model {
const avatarKeys = [ 'id', 'filename', 'fileUrl', 'onDisk', 'createdAt', 'updatedAt' ] const avatarKeys = [ 'id', 'filename', 'fileUrl', 'onDisk', 'createdAt', 'updatedAt' ]
const actorKeys = [ 'id', 'preferredUsername', 'url', 'serverId', 'avatarId' ] const actorKeys = [ 'id', 'preferredUsername', 'url', 'serverId', 'avatarId' ]
const serverKeys = [ 'id', 'host' ] const serverKeys = [ 'id', 'host' ]
const videoFileKeys = [ 'id', 'createdAt', 'updatedAt', 'resolution', 'size', 'extname', 'infoHash', 'fps', 'videoId' ] const videoFileKeys = [
const videoStreamingPlaylistKeys = [ 'id' ] 'id',
'createdAt',
'updatedAt',
'resolution',
'size',
'extname',
'infoHash',
'fps',
'videoId',
'videoStreamingPlaylistId'
]
const videoStreamingPlaylistKeys = [ 'id', 'type', 'playlistUrl' ]
const videoKeys = [ const videoKeys = [
'id', 'id',
'uuid', 'uuid',
@ -1882,17 +1884,21 @@ export class VideoModel extends Model {
getFormattedVideoFilesJSON (): VideoFile[] { getFormattedVideoFilesJSON (): VideoFile[] {
const { baseUrlHttp, baseUrlWs } = this.getBaseUrls() const { baseUrlHttp, baseUrlWs } = this.getBaseUrls()
let files: MVideoFileRedundanciesOpt[] = [] let files: VideoFile[] = []
if (Array.isArray(this.VideoFiles)) { 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 || [])) { 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 { toActivityPubObject (this: MVideoAP): VideoObject {