X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fvideos%2Fshared%2Fobject-to-model-attributes.ts;h=86699c5b8dd30d5be44cfa615c8cd1f2ef339e21;hb=b89b0bfce9bb79d81f9761b07b04d0c4e5aa25c1;hp=50ca4e67390526937c7693b2691177bf86629e11;hpb=bacb544dbb548955d3f47365902b104d787a51a3;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/videos/shared/object-to-model-attributes.ts b/server/lib/activitypub/videos/shared/object-to-model-attributes.ts index 50ca4e673..86699c5b8 100644 --- a/server/lib/activitypub/videos/shared/object-to-model-attributes.ts +++ b/server/lib/activitypub/videos/shared/object-to-model-attributes.ts @@ -11,7 +11,7 @@ import { VideoCaptionModel } from '@server/models/video/video-caption' import { VideoFileModel } from '@server/models/video/video-file' import { VideoStreamingPlaylistModel } from '@server/models/video/video-streaming-playlist' import { FilteredModelAttributes } from '@server/types' -import { isStreamingPlaylist, MChannelId, MStreamingPlaylistVideo, MVideo, MVideoFile, MVideoId } from '@server/types/models' +import { isStreamingPlaylist, MChannelId, MStreamingPlaylistVideo, MVideo, MVideoId } from '@server/types/models' import { ActivityHashTagObject, ActivityMagnetUrlObject, @@ -24,6 +24,7 @@ import { VideoPrivacy, VideoStreamingPlaylistType } from '@shared/models' +import { getDurationFromActivityStream } from '../../activity' function getThumbnailFromIcons (videoObject: VideoObject) { let validIcons = videoObject.icon.filter(i => i.width > THUMBNAILS_SIZE.minWidth) @@ -110,7 +111,7 @@ function getFileAttributesFromUrl ( return attributes } -function getStreamingPlaylistAttributesFromObject (video: MVideoId, videoObject: VideoObject, videoFiles: MVideoFile[]) { +function getStreamingPlaylistAttributesFromObject (video: MVideoId, videoObject: VideoObject) { const playlistUrls = videoObject.url.filter(u => isAPStreamingPlaylistUrlObject(u)) as ActivityPlaylistUrlObject[] if (playlistUrls.length === 0) return [] @@ -118,7 +119,7 @@ function getStreamingPlaylistAttributesFromObject (video: MVideoId, videoObject: for (const playlistUrlObject of playlistUrls) { const segmentsSha256UrlObject = playlistUrlObject.tag.find(isAPPlaylistSegmentHashesUrlObject) - let files: unknown[] = playlistUrlObject.tag.filter(u => isAPVideoUrlObject(u)) as ActivityVideoUrlObject[] + const files: unknown[] = playlistUrlObject.tag.filter(u => isAPVideoUrlObject(u)) as ActivityVideoUrlObject[] if (!segmentsSha256UrlObject) { logger.warn('No segment sha256 URL found in AP playlist object.', { playlistUrl: playlistUrlObject }) @@ -151,6 +152,7 @@ function getLiveAttributesFromObject (video: MVideoId, videoObject: VideoObject) return { saveReplay: videoObject.liveSaveReplay, permanentLive: videoObject.permanentLive, + latencyMode: videoObject.latencyMode, videoId: video.id } } @@ -169,7 +171,6 @@ function getVideoAttributesFromObject (videoChannel: MChannelId, videoObject: Vi ? VideoPrivacy.PUBLIC : VideoPrivacy.UNLISTED - const duration = videoObject.duration.replace(/[^\d]+/, '') const language = videoObject.language?.identifier const category = videoObject.category @@ -199,7 +200,7 @@ function getVideoAttributesFromObject (videoChannel: MChannelId, videoObject: Vi isLive: videoObject.isLiveBroadcast, state: videoObject.state, channelId: videoChannel.id, - duration: parseInt(duration, 10), + duration: getDurationFromActivityStream(videoObject.duration), createdAt: new Date(videoObject.published), publishedAt: new Date(videoObject.published), @@ -209,8 +210,6 @@ function getVideoAttributesFromObject (videoChannel: MChannelId, videoObject: Vi updatedAt: new Date(videoObject.updated), views: videoObject.views, - likes: 0, - dislikes: 0, remote: true, privacy }