diff options
Diffstat (limited to 'server/controllers/api/videos/index.ts')
-rw-r--r-- | server/controllers/api/videos/index.ts | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts index 4b3198a74..c07430e6c 100644 --- a/server/controllers/api/videos/index.ts +++ b/server/controllers/api/videos/index.ts | |||
@@ -19,7 +19,12 @@ import { | |||
19 | VIDEO_MIMETYPE_EXT, | 19 | VIDEO_MIMETYPE_EXT, |
20 | VIDEO_PRIVACIES | 20 | VIDEO_PRIVACIES |
21 | } from '../../../initializers' | 21 | } from '../../../initializers' |
22 | import { fetchRemoteVideoDescription, getVideoActivityPubUrl, shareVideoByServerAndChannel } from '../../../lib/activitypub' | 22 | import { |
23 | changeVideoChannelShare, | ||
24 | fetchRemoteVideoDescription, | ||
25 | getVideoActivityPubUrl, | ||
26 | shareVideoByServerAndChannel | ||
27 | } from '../../../lib/activitypub' | ||
23 | import { sendCreateVideo, sendCreateView, sendUpdateVideo } from '../../../lib/activitypub/send' | 28 | import { sendCreateVideo, sendCreateView, sendUpdateVideo } from '../../../lib/activitypub/send' |
24 | import { JobQueue } from '../../../lib/job-queue' | 29 | import { JobQueue } from '../../../lib/job-queue' |
25 | import { Redis } from '../../../lib/redis' | 30 | import { Redis } from '../../../lib/redis' |
@@ -305,6 +310,7 @@ async function updateVideo (req: express.Request, res: express.Response) { | |||
305 | const sequelizeOptions = { | 310 | const sequelizeOptions = { |
306 | transaction: t | 311 | transaction: t |
307 | } | 312 | } |
313 | const oldVideoChannel = videoInstance.VideoChannel | ||
308 | 314 | ||
309 | if (videoInfoToUpdate.name !== undefined) videoInstance.set('name', videoInfoToUpdate.name) | 315 | if (videoInfoToUpdate.name !== undefined) videoInstance.set('name', videoInfoToUpdate.name) |
310 | if (videoInfoToUpdate.category !== undefined) videoInstance.set('category', videoInfoToUpdate.category) | 316 | if (videoInfoToUpdate.category !== undefined) videoInstance.set('category', videoInfoToUpdate.category) |
@@ -325,18 +331,25 @@ async function updateVideo (req: express.Request, res: express.Response) { | |||
325 | 331 | ||
326 | const videoInstanceUpdated = await videoInstance.save(sequelizeOptions) | 332 | const videoInstanceUpdated = await videoInstance.save(sequelizeOptions) |
327 | 333 | ||
334 | // Video tags update? | ||
328 | if (videoInfoToUpdate.tags) { | 335 | if (videoInfoToUpdate.tags) { |
329 | const tagInstances = await TagModel.findOrCreateTags(videoInfoToUpdate.tags, t) | 336 | const tagInstances = await TagModel.findOrCreateTags(videoInfoToUpdate.tags, t) |
330 | 337 | ||
331 | await videoInstance.$set('Tags', tagInstances, sequelizeOptions) | 338 | await videoInstanceUpdated.$set('Tags', tagInstances, sequelizeOptions) |
332 | videoInstance.Tags = tagInstances | 339 | videoInstanceUpdated.Tags = tagInstances |
333 | } | 340 | } |
334 | 341 | ||
335 | // Now we'll update the video's meta data to our friends | 342 | // Video channel update? |
336 | if (wasPrivateVideo === false) { | 343 | if (res.locals.videoChannel && videoInstanceUpdated.channelId !== res.locals.videoChannel.id) { |
337 | await sendUpdateVideo(videoInstanceUpdated, t) | 344 | await videoInstanceUpdated.$set('VideoChannel', res.locals.videoChannel) |
345 | videoInstance.VideoChannel = res.locals.videoChannel | ||
346 | |||
347 | if (wasPrivateVideo === false) await changeVideoChannelShare(videoInstanceUpdated, oldVideoChannel, t) | ||
338 | } | 348 | } |
339 | 349 | ||
350 | // Now we'll update the video's meta data to our friends | ||
351 | if (wasPrivateVideo === false) await sendUpdateVideo(videoInstanceUpdated, t) | ||
352 | |||
340 | // Video is not private anymore, send a create action to remote servers | 353 | // Video is not private anymore, send a create action to remote servers |
341 | if (wasPrivateVideo === true && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE) { | 354 | if (wasPrivateVideo === true && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE) { |
342 | await sendCreateVideo(videoInstanceUpdated, t) | 355 | await sendCreateVideo(videoInstanceUpdated, t) |