]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/video/video-format-utils.ts
Fix videos list when page is empty
[github/Chocobozzz/PeerTube.git] / server / models / video / video-format-utils.ts
index a9a58624dee16e1d7c75246fb21125205e7ecdf3..905e8444997e8306d07773213960491ad9b41261 100644 (file)
@@ -10,8 +10,10 @@ import {
   getVideoLikesActivityPubUrl,
   getVideoSharesActivityPubUrl
 } from '../../lib/activitypub'
+import { isArray } from '../../helpers/custom-validators/misc'
 
 export type VideoFormattingJSONOptions = {
+  completeDescription?: boolean
   additionalAttributes: {
     state?: boolean,
     waitTranscoding?: boolean,
@@ -23,6 +25,8 @@ function videoModelToFormattedJSON (video: VideoModel, options?: VideoFormatting
   const formattedAccount = video.VideoChannel.Account.toFormattedJSON()
   const formattedVideoChannel = video.VideoChannel.toFormattedJSON()
 
+  const userHistory = isArray(video.UserVideoHistories) ? video.UserVideoHistories[0] : undefined
+
   const videoObject: Video = {
     id: video.id,
     uuid: video.uuid,
@@ -44,7 +48,7 @@ function videoModelToFormattedJSON (video: VideoModel, options?: VideoFormatting
       label: VideoModel.getPrivacyLabel(video.privacy)
     },
     nsfw: video.nsfw,
-    description: video.getTruncatedDescription(),
+    description: options && options.completeDescription === true ? video.description : video.getTruncatedDescription(),
     isLocal: video.isOwned(),
     duration: video.duration,
     views: video.views,
@@ -73,7 +77,11 @@ function videoModelToFormattedJSON (video: VideoModel, options?: VideoFormatting
       url: formattedVideoChannel.url,
       host: formattedVideoChannel.host,
       avatar: formattedVideoChannel.avatar
-    }
+    },
+
+    userHistory: userHistory ? {
+      currentTime: userHistory.currentTime
+    } : undefined
   }
 
   if (options) {