X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fsend%2Fsend-announce.ts;h=fa1d47259a958af993b3bdae32eb3e0228e42cc8;hb=e251f170b00b2014ac4e823113c6ff40e3fb1471;hp=578fbc630a032c471465e0dd6579ffe66273e1a5;hpb=50d6de9c286abcb34ff4234d56d9cbb803db7665;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/send/send-announce.ts b/server/lib/activitypub/send/send-announce.ts index 578fbc630..fa1d47259 100644 --- a/server/lib/activitypub/send/send-announce.ts +++ b/server/lib/activitypub/send/send-announce.ts @@ -1,54 +1,29 @@ import { Transaction } from 'sequelize' -import { ActivityAnnounce, ActivityAudience, ActivityCreate } from '../../../../shared/models/activitypub' -import { VideoPrivacy } from '../../../../shared/models/videos' +import { ActivityAnnounce, ActivityAudience } from '../../../../shared/models/activitypub' import { ActorModel } from '../../../models/activitypub/actor' import { VideoModel } from '../../../models/video/video' -import { getAnnounceActivityPubUrl } from '../url' -import { - broadcastToFollowers, - getActorsInvolvedInVideo, - getAudience, - getObjectFollowersAudience, - getOriginVideoAudience, - unicastTo -} from './misc' -import { createActivityData } from './send-create' +import { VideoShareModel } from '../../../models/video/video-share' +import { broadcastToFollowers } from './utils' +import { getActorsInvolvedInVideo, getAudience, getObjectFollowersAudience } from '../audience' -async function buildVideoAnnounceToFollowers (byActor: ActorModel, video: VideoModel, t: Transaction) { - const url = getAnnounceActivityPubUrl(video.url, byActor) - const videoObject = video.toActivityPubObject() - - const announcedAudience = await getAudience(byActor, t, video.privacy === VideoPrivacy.PUBLIC) - const announcedActivity = await createActivityData(url, video.VideoChannel.Account.Actor, videoObject, t, announcedAudience) +async function buildVideoAnnounce (byActor: ActorModel, videoShare: VideoShareModel, video: VideoModel, t: Transaction) { + const announcedObject = video.url const accountsToForwardView = await getActorsInvolvedInVideo(video, t) const audience = getObjectFollowersAudience(accountsToForwardView) - return announceActivityData(url, byActor, announcedActivity, t, audience) + return announceActivityData(videoShare.url, byActor, announcedObject, t, audience) } -async function sendVideoAnnounceToFollowers (byActor: ActorModel, video: VideoModel, t: Transaction) { - const data = await buildVideoAnnounceToFollowers(byActor, video, t) +async function sendVideoAnnounce (byActor: ActorModel, videoShare: VideoShareModel, video: VideoModel, t: Transaction) { + const data = await buildVideoAnnounce(byActor, videoShare, video, t) return broadcastToFollowers(data, byActor, [ byActor ], t) } -async function sendVideoAnnounceToOrigin (byActor: ActorModel, video: VideoModel, t: Transaction) { - const url = getAnnounceActivityPubUrl(video.url, byActor) - - const videoObject = video.toActivityPubObject() - const announcedActivity = await createActivityData(url, video.VideoChannel.Account.Actor, videoObject, t) - - const actorsInvolvedInVideo = await getActorsInvolvedInVideo(video, t) - const audience = getOriginVideoAudience(video, actorsInvolvedInVideo) - const data = await createActivityData(url, byActor, announcedActivity, t, audience) - - return unicastTo(data, byActor, video.VideoChannel.Account.Actor.sharedInboxUrl, t) -} - async function announceActivityData ( url: string, byActor: ActorModel, - object: ActivityCreate, + object: string, t: Transaction, audience?: ActivityAudience ): Promise { @@ -69,8 +44,7 @@ async function announceActivityData ( // --------------------------------------------------------------------------- export { - sendVideoAnnounceToFollowers, - sendVideoAnnounceToOrigin, + sendVideoAnnounce, announceActivityData, - buildVideoAnnounceToFollowers + buildVideoAnnounce }