aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/activitypub/videos/shared/object-to-model-attributes.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/activitypub/videos/shared/object-to-model-attributes.ts')
-rw-r--r--server/lib/activitypub/videos/shared/object-to-model-attributes.ts34
1 files changed, 28 insertions, 6 deletions
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 8a8105500..85548428c 100644
--- a/server/lib/activitypub/videos/shared/object-to-model-attributes.ts
+++ b/server/lib/activitypub/videos/shared/object-to-model-attributes.ts
@@ -23,6 +23,7 @@ import {
23 VideoPrivacy, 23 VideoPrivacy,
24 VideoStreamingPlaylistType 24 VideoStreamingPlaylistType
25} from '@shared/models' 25} from '@shared/models'
26import { VideoCaptionModel } from '@server/models/video/video-caption'
26 27
27function getThumbnailFromIcons (videoObject: VideoObject) { 28function getThumbnailFromIcons (videoObject: VideoObject) {
28 let validIcons = videoObject.icon.filter(i => i.width > THUMBNAILS_SIZE.minWidth) 29 let validIcons = videoObject.icon.filter(i => i.width > THUMBNAILS_SIZE.minWidth)
@@ -44,7 +45,7 @@ function getTagsFromObject (videoObject: VideoObject) {
44 .map(t => t.name) 45 .map(t => t.name)
45} 46}
46 47
47function videoFileActivityUrlToDBAttributes ( 48function getFileAttributesFromUrl (
48 videoOrPlaylist: MVideo | MStreamingPlaylistVideo, 49 videoOrPlaylist: MVideo | MStreamingPlaylistVideo,
49 urls: (ActivityTagObject | ActivityUrlObject)[] 50 urls: (ActivityTagObject | ActivityUrlObject)[]
50) { 51) {
@@ -109,7 +110,7 @@ function videoFileActivityUrlToDBAttributes (
109 return attributes 110 return attributes
110} 111}
111 112
112function streamingPlaylistActivityUrlToDBAttributes (video: MVideoId, videoObject: VideoObject, videoFiles: MVideoFile[]) { 113function getStreamingPlaylistAttributesFromObject (video: MVideoId, videoObject: VideoObject, videoFiles: MVideoFile[]) {
113 const playlistUrls = videoObject.url.filter(u => isAPStreamingPlaylistUrlObject(u)) as ActivityPlaylistUrlObject[] 114 const playlistUrls = videoObject.url.filter(u => isAPStreamingPlaylistUrlObject(u)) as ActivityPlaylistUrlObject[]
114 if (playlistUrls.length === 0) return [] 115 if (playlistUrls.length === 0) return []
115 116
@@ -134,6 +135,7 @@ function streamingPlaylistActivityUrlToDBAttributes (video: MVideoId, videoObjec
134 p2pMediaLoaderInfohashes: VideoStreamingPlaylistModel.buildP2PMediaLoaderInfoHashes(playlistUrlObject.href, files), 135 p2pMediaLoaderInfohashes: VideoStreamingPlaylistModel.buildP2PMediaLoaderInfoHashes(playlistUrlObject.href, files),
135 p2pMediaLoaderPeerVersion: P2P_MEDIA_LOADER_PEER_VERSION, 136 p2pMediaLoaderPeerVersion: P2P_MEDIA_LOADER_PEER_VERSION,
136 videoId: video.id, 137 videoId: video.id,
138
137 tagAPObject: playlistUrlObject.tag 139 tagAPObject: playlistUrlObject.tag
138 } 140 }
139 141
@@ -143,7 +145,24 @@ function streamingPlaylistActivityUrlToDBAttributes (video: MVideoId, videoObjec
143 return attributes 145 return attributes
144} 146}
145 147
146function videoActivityObjectToDBAttributes (videoChannel: MChannelId, videoObject: VideoObject, to: string[] = []) { 148function getLiveAttributesFromObject (video: MVideoId, videoObject: VideoObject) {
149 return {
150 saveReplay: videoObject.liveSaveReplay,
151 permanentLive: videoObject.permanentLive,
152 videoId: video.id
153 }
154}
155
156function getCaptionAttributesFromObject (video: MVideoId, videoObject: VideoObject) {
157 return videoObject.subtitleLanguage.map(c => ({
158 videoId: video.id,
159 filename: VideoCaptionModel.generateCaptionName(c.identifier),
160 language: c.identifier,
161 fileUrl: c.url
162 }))
163}
164
165function getVideoAttributesFromObject (videoChannel: MChannelId, videoObject: VideoObject, to: string[] = []) {
147 const privacy = to.includes(ACTIVITY_PUB.PUBLIC) 166 const privacy = to.includes(ACTIVITY_PUB.PUBLIC)
148 ? VideoPrivacy.PUBLIC 167 ? VideoPrivacy.PUBLIC
149 : VideoPrivacy.UNLISTED 168 : VideoPrivacy.UNLISTED
@@ -203,10 +222,13 @@ export {
203 222
204 getTagsFromObject, 223 getTagsFromObject,
205 224
206 videoActivityObjectToDBAttributes, 225 getFileAttributesFromUrl,
226 getStreamingPlaylistAttributesFromObject,
227
228 getLiveAttributesFromObject,
229 getCaptionAttributesFromObject,
207 230
208 videoFileActivityUrlToDBAttributes, 231 getVideoAttributesFromObject
209 streamingPlaylistActivityUrlToDBAttributes
210} 232}
211 233
212// --------------------------------------------------------------------------- 234// ---------------------------------------------------------------------------