From 81b46cbc3417c46263c210c61b51a84a457abaaa Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 5 Feb 2021 17:08:47 +0100 Subject: [PATCH] Optimize videos list API endpoint --- server/models/video/video.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/server/models/video/video.ts b/server/models/video/video.ts index 0ecb8d600..3f6fd8dc0 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts @@ -1658,17 +1658,18 @@ export class VideoModel extends Model { 'createdAt', 'updatedAt' ] + const buildOpts = { raw: true } function buildActor (rowActor: any) { const avatarModel = rowActor.Avatar.id !== null - ? new AvatarModel(pick(rowActor.Avatar, avatarKeys)) + ? new AvatarModel(pick(rowActor.Avatar, avatarKeys), buildOpts) : null const serverModel = rowActor.Server.id !== null - ? new ServerModel(pick(rowActor.Server, serverKeys)) + ? new ServerModel(pick(rowActor.Server, serverKeys), buildOpts) : null - const actorModel = new ActorModel(pick(rowActor, actorKeys)) + const actorModel = new ActorModel(pick(rowActor, actorKeys), buildOpts) actorModel.Avatar = avatarModel actorModel.Server = serverModel @@ -1679,11 +1680,11 @@ export class VideoModel extends Model { if (!videosMemo[row.id]) { // Build Channel const channel = row.VideoChannel - const channelModel = new VideoChannelModel(pick(channel, [ 'id', 'name', 'description', 'actorId' ])) + const channelModel = new VideoChannelModel(pick(channel, [ 'id', 'name', 'description', 'actorId' ]), buildOpts) channelModel.Actor = buildActor(channel.Actor) const account = row.VideoChannel.Account - const accountModel = new AccountModel(pick(account, [ 'id', 'name' ])) + const accountModel = new AccountModel(pick(account, [ 'id', 'name' ]), buildOpts) accountModel.Actor = buildActor(account.Actor) channelModel.Account = accountModel @@ -1704,28 +1705,28 @@ export class VideoModel extends Model { const videoModel = videosMemo[row.id] if (row.userVideoHistory?.id && !historyDone.has(row.userVideoHistory.id)) { - const historyModel = new UserVideoHistoryModel(pick(row.userVideoHistory, [ 'id', 'currentTime' ])) + const historyModel = new UserVideoHistoryModel(pick(row.userVideoHistory, [ 'id', 'currentTime' ]), buildOpts) videoModel.UserVideoHistories.push(historyModel) historyDone.add(row.userVideoHistory.id) } if (row.Thumbnails?.id && !thumbnailsDone.has(row.Thumbnails.id)) { - const thumbnailModel = new ThumbnailModel(pick(row.Thumbnails, [ 'id', 'type', 'filename' ])) + const thumbnailModel = new ThumbnailModel(pick(row.Thumbnails, [ 'id', 'type', 'filename' ]), buildOpts) videoModel.Thumbnails.push(thumbnailModel) thumbnailsDone.add(row.Thumbnails.id) } if (row.VideoFiles?.id && !videoFilesDone.has(row.VideoFiles.id)) { - const videoFileModel = new VideoFileModel(pick(row.VideoFiles, videoFileKeys)) + const videoFileModel = new VideoFileModel(pick(row.VideoFiles, videoFileKeys), buildOpts) videoModel.VideoFiles.push(videoFileModel) videoFilesDone.add(row.VideoFiles.id) } if (row.VideoStreamingPlaylists?.id && !videoStreamingPlaylistMemo[row.VideoStreamingPlaylists.id]) { - const streamingPlaylist = new VideoStreamingPlaylistModel(pick(row.VideoStreamingPlaylists, videoStreamingPlaylistKeys)) + const streamingPlaylist = new VideoStreamingPlaylistModel(pick(row.VideoStreamingPlaylists, videoStreamingPlaylistKeys), buildOpts) streamingPlaylist.VideoFiles = [] videoModel.VideoStreamingPlaylists.push(streamingPlaylist) @@ -1736,7 +1737,7 @@ export class VideoModel extends Model { if (row.VideoStreamingPlaylists?.VideoFiles?.id && !videoFilesDone.has(row.VideoStreamingPlaylists.VideoFiles.id)) { const streamingPlaylist = videoStreamingPlaylistMemo[row.VideoStreamingPlaylists.id] - const videoFileModel = new VideoFileModel(pick(row.VideoStreamingPlaylists.VideoFiles, videoFileKeys)) + const videoFileModel = new VideoFileModel(pick(row.VideoStreamingPlaylists.VideoFiles, videoFileKeys), buildOpts) streamingPlaylist.VideoFiles.push(videoFileModel) videoFilesDone.add(row.VideoStreamingPlaylists.VideoFiles.id)