From 0f320037e689b2778959c12ddd4ce790f6e4ae4f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 11 May 2018 15:10:13 +0200 Subject: Add ability to update a video channel --- server/lib/activitypub/send/send-undo.ts | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'server/lib/activitypub/send/send-undo.ts') diff --git a/server/lib/activitypub/send/send-undo.ts b/server/lib/activitypub/send/send-undo.ts index bd49d452e..adee2192f 100644 --- a/server/lib/activitypub/send/send-undo.ts +++ b/server/lib/activitypub/send/send-undo.ts @@ -1,5 +1,12 @@ import { Transaction } from 'sequelize' -import { ActivityAudience, ActivityCreate, ActivityFollow, ActivityLike, ActivityUndo } from '../../../../shared/models/activitypub' +import { + ActivityAnnounce, + ActivityAudience, + ActivityCreate, + ActivityFollow, + ActivityLike, + ActivityUndo +} from '../../../../shared/models/activitypub' import { ActorModel } from '../../../models/activitypub/actor' import { ActorFollowModel } from '../../../models/activitypub/actor-follow' import { VideoModel } from '../../../models/video/video' @@ -16,6 +23,8 @@ import { import { createActivityData, createDislikeActivityData } from './send-create' import { followActivityData } from './send-follow' import { likeActivityData } from './send-like' +import { VideoShareModel } from '../../../models/video/video-share' +import { buildVideoAnnounce } from './send-announce' async function sendUndoFollow (actorFollow: ActorFollowModel, t: Transaction) { const me = actorFollow.ActorFollower @@ -58,7 +67,7 @@ async function sendUndoDislike (byActor: ActorModel, video: VideoModel, t: Trans const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t) const dislikeActivity = createDislikeActivityData(byActor, video) - const object = await createActivityData(undoUrl, byActor, dislikeActivity, t) + const object = await createActivityData(dislikeUrl, byActor, dislikeActivity, t) if (video.isOwned() === false) { const audience = getOriginVideoAudience(video, actorsInvolvedInVideo) @@ -73,12 +82,24 @@ async function sendUndoDislike (byActor: ActorModel, video: VideoModel, t: Trans return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException) } +async function sendUndoAnnounce (byActor: ActorModel, videoShare: VideoShareModel, video: VideoModel, t: Transaction) { + const undoUrl = getUndoActivityPubUrl(videoShare.url) + + const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t) + const object = await buildVideoAnnounce(byActor, videoShare, video, t) + const data = await undoActivityData(undoUrl, byActor, object, t) + + const followersException = [ byActor ] + return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException) +} + // --------------------------------------------------------------------------- export { sendUndoFollow, sendUndoLike, - sendUndoDislike + sendUndoDislike, + sendUndoAnnounce } // --------------------------------------------------------------------------- @@ -86,7 +107,7 @@ export { async function undoActivityData ( url: string, byActor: ActorModel, - object: ActivityFollow | ActivityLike | ActivityCreate, + object: ActivityFollow | ActivityLike | ActivityCreate | ActivityAnnounce, t: Transaction, audience?: ActivityAudience ): Promise { -- cgit v1.2.3