diff options
Diffstat (limited to 'server/lib/activitypub/send')
-rw-r--r-- | server/lib/activitypub/send/send-undo.ts | 29 |
1 files changed, 25 insertions, 4 deletions
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 @@ | |||
1 | import { Transaction } from 'sequelize' | 1 | import { Transaction } from 'sequelize' |
2 | import { ActivityAudience, ActivityCreate, ActivityFollow, ActivityLike, ActivityUndo } from '../../../../shared/models/activitypub' | 2 | import { |
3 | ActivityAnnounce, | ||
4 | ActivityAudience, | ||
5 | ActivityCreate, | ||
6 | ActivityFollow, | ||
7 | ActivityLike, | ||
8 | ActivityUndo | ||
9 | } from '../../../../shared/models/activitypub' | ||
3 | import { ActorModel } from '../../../models/activitypub/actor' | 10 | import { ActorModel } from '../../../models/activitypub/actor' |
4 | import { ActorFollowModel } from '../../../models/activitypub/actor-follow' | 11 | import { ActorFollowModel } from '../../../models/activitypub/actor-follow' |
5 | import { VideoModel } from '../../../models/video/video' | 12 | import { VideoModel } from '../../../models/video/video' |
@@ -16,6 +23,8 @@ import { | |||
16 | import { createActivityData, createDislikeActivityData } from './send-create' | 23 | import { createActivityData, createDislikeActivityData } from './send-create' |
17 | import { followActivityData } from './send-follow' | 24 | import { followActivityData } from './send-follow' |
18 | import { likeActivityData } from './send-like' | 25 | import { likeActivityData } from './send-like' |
26 | import { VideoShareModel } from '../../../models/video/video-share' | ||
27 | import { buildVideoAnnounce } from './send-announce' | ||
19 | 28 | ||
20 | async function sendUndoFollow (actorFollow: ActorFollowModel, t: Transaction) { | 29 | async function sendUndoFollow (actorFollow: ActorFollowModel, t: Transaction) { |
21 | const me = actorFollow.ActorFollower | 30 | const me = actorFollow.ActorFollower |
@@ -58,7 +67,7 @@ async function sendUndoDislike (byActor: ActorModel, video: VideoModel, t: Trans | |||
58 | 67 | ||
59 | const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t) | 68 | const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t) |
60 | const dislikeActivity = createDislikeActivityData(byActor, video) | 69 | const dislikeActivity = createDislikeActivityData(byActor, video) |
61 | const object = await createActivityData(undoUrl, byActor, dislikeActivity, t) | 70 | const object = await createActivityData(dislikeUrl, byActor, dislikeActivity, t) |
62 | 71 | ||
63 | if (video.isOwned() === false) { | 72 | if (video.isOwned() === false) { |
64 | const audience = getOriginVideoAudience(video, actorsInvolvedInVideo) | 73 | const audience = getOriginVideoAudience(video, actorsInvolvedInVideo) |
@@ -73,12 +82,24 @@ async function sendUndoDislike (byActor: ActorModel, video: VideoModel, t: Trans | |||
73 | return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException) | 82 | return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException) |
74 | } | 83 | } |
75 | 84 | ||
85 | async function sendUndoAnnounce (byActor: ActorModel, videoShare: VideoShareModel, video: VideoModel, t: Transaction) { | ||
86 | const undoUrl = getUndoActivityPubUrl(videoShare.url) | ||
87 | |||
88 | const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t) | ||
89 | const object = await buildVideoAnnounce(byActor, videoShare, video, t) | ||
90 | const data = await undoActivityData(undoUrl, byActor, object, t) | ||
91 | |||
92 | const followersException = [ byActor ] | ||
93 | return broadcastToFollowers(data, byActor, actorsInvolvedInVideo, t, followersException) | ||
94 | } | ||
95 | |||
76 | // --------------------------------------------------------------------------- | 96 | // --------------------------------------------------------------------------- |
77 | 97 | ||
78 | export { | 98 | export { |
79 | sendUndoFollow, | 99 | sendUndoFollow, |
80 | sendUndoLike, | 100 | sendUndoLike, |
81 | sendUndoDislike | 101 | sendUndoDislike, |
102 | sendUndoAnnounce | ||
82 | } | 103 | } |
83 | 104 | ||
84 | // --------------------------------------------------------------------------- | 105 | // --------------------------------------------------------------------------- |
@@ -86,7 +107,7 @@ export { | |||
86 | async function undoActivityData ( | 107 | async function undoActivityData ( |
87 | url: string, | 108 | url: string, |
88 | byActor: ActorModel, | 109 | byActor: ActorModel, |
89 | object: ActivityFollow | ActivityLike | ActivityCreate, | 110 | object: ActivityFollow | ActivityLike | ActivityCreate | ActivityAnnounce, |
90 | t: Transaction, | 111 | t: Transaction, |
91 | audience?: ActivityAudience | 112 | audience?: ActivityAudience |
92 | ): Promise<ActivityUndo> { | 113 | ): Promise<ActivityUndo> { |