diff options
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.ts | 34 |
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' |
26 | import { VideoCaptionModel } from '@server/models/video/video-caption' | ||
26 | 27 | ||
27 | function getThumbnailFromIcons (videoObject: VideoObject) { | 28 | function 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 | ||
47 | function videoFileActivityUrlToDBAttributes ( | 48 | function 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 | ||
112 | function streamingPlaylistActivityUrlToDBAttributes (video: MVideoId, videoObject: VideoObject, videoFiles: MVideoFile[]) { | 113 | function 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 | ||
146 | function videoActivityObjectToDBAttributes (videoChannel: MChannelId, videoObject: VideoObject, to: string[] = []) { | 148 | function getLiveAttributesFromObject (video: MVideoId, videoObject: VideoObject) { |
149 | return { | ||
150 | saveReplay: videoObject.liveSaveReplay, | ||
151 | permanentLive: videoObject.permanentLive, | ||
152 | videoId: video.id | ||
153 | } | ||
154 | } | ||
155 | |||
156 | function 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 | |||
165 | function 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 | // --------------------------------------------------------------------------- |