X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fsend%2Futils.ts;h=241db6c8cfc603f4eca27c6b5d6ebbc6508d59f9;hb=9588d4f49b7183631ddb97fa9c3cd79f9bfe2945;hp=80d4463ffb09a3ef0f252bc2bf23ccc9cc685530;hpb=e251f170b00b2014ac4e823113c6ff40e3fb1471;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/send/utils.ts b/server/lib/activitypub/send/utils.ts index 80d4463ff..241db6c8c 100644 --- a/server/lib/activitypub/send/utils.ts +++ b/server/lib/activitypub/send/utils.ts @@ -4,6 +4,21 @@ import { logger } from '../../../helpers/logger' import { ActorModel } from '../../../models/activitypub/actor' import { ActorFollowModel } from '../../../models/activitypub/actor-follow' import { JobQueue } from '../../job-queue' +import { VideoModel } from '../../../models/video/video' +import { getActorsInvolvedInVideo } from '../audience' + +async function forwardVideoRelatedActivity ( + activity: Activity, + t: Transaction, + followersException: ActorModel[] = [], + video: VideoModel +) { + // Mastodon does not add our announces in audience, so we forward to them manually + const additionalActors = await getActorsInvolvedInVideo(video, t) + const additionalFollowerUrls = additionalActors.map(a => a.followersUrl) + + return forwardActivity(activity, t, followersException, additionalFollowerUrls) +} async function forwardActivity ( activity: Activity, @@ -91,7 +106,8 @@ export { broadcastToFollowers, unicastTo, forwardActivity, - broadcastToActors + broadcastToActors, + forwardVideoRelatedActivity } // ---------------------------------------------------------------------------