+ const audience = { to: [ video.VideoChannel.Account.Actor.url ], cc: [] }
+ const data = await createActivityData(url, byActor, videoAbuse.toActivityPubObject(), t, audience)
+
+ return unicastTo(data, byActor, video.VideoChannel.Account.Actor.sharedInboxUrl, t)
+}
+
+async function sendCreateViewToOrigin (byActor: ActorModel, video: VideoModel, t: Transaction) {
+ const url = getVideoViewActivityPubUrl(byActor, video)
+ const viewActivity = createViewActivityData(byActor, video)
+
+ const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t)
+ const audience = getOriginVideoAudience(video, actorsInvolvedInVideo)
+ const data = await createActivityData(url, byActor, viewActivity, t, audience)
+
+ return unicastTo(data, byActor, video.VideoChannel.Account.Actor.sharedInboxUrl, t)
+}
+
+async function sendCreateViewToVideoFollowers (byActor: ActorModel, video: VideoModel, t: Transaction) {
+ const url = getVideoViewActivityPubUrl(byActor, video)
+ const viewActivity = createViewActivityData(byActor, video)
+
+ const actorsToForwardView = await getActorsInvolvedInVideo(video, t)
+ const audience = getObjectFollowersAudience(actorsToForwardView)
+ const data = await createActivityData(url, byActor, viewActivity, t, audience)
+
+ // Use the server actor to send the view
+ const serverActor = await getServerActor()
+ const followersException = [ byActor ]
+ return broadcastToFollowers(data, serverActor, actorsToForwardView, t, followersException)
+}
+
+async function sendCreateDislikeToOrigin (byActor: ActorModel, video: VideoModel, t: Transaction) {
+ const url = getVideoDislikeActivityPubUrl(byActor, video)
+ const dislikeActivity = createDislikeActivityData(byActor, video)
+
+ const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t)
+ const audience = getOriginVideoAudience(video, actorsInvolvedInVideo)
+ const data = await createActivityData(url, byActor, dislikeActivity, t, audience)
+
+ return unicastTo(data, byActor, video.VideoChannel.Account.Actor.sharedInboxUrl, t)