import { VideoModel } from '../../../models/video/video'
import { VideoCommentModel } from '../../../models/video/video-comment'
import { VideoShareModel } from '../../../models/video/video-share'
-import { activitypubHttpJobScheduler, ActivityPubHttpPayload } from '../../jobs/activitypub-http-job-scheduler'
+import { JobQueue } from '../../job-queue'
async function forwardActivity (
activity: Activity,
logger.debug('Creating forwarding job.', { uris })
- const jobPayload: ActivityPubHttpPayload = {
+ const payload = {
uris,
body: activity
}
-
- return activitypubHttpJobScheduler.createJob(t, 'activitypubHttpBroadcastHandler', jobPayload)
+ return JobQueue.Instance.createJob({ type: 'activitypub-http-broadcast', payload })
}
async function broadcastToFollowers (
actorsException: ActorModel[] = []
) {
const uris = await computeFollowerUris(toActorFollowers, actorsException, t)
- return broadcastTo(uris, data, byActor, t)
+ return broadcastTo(uris, data, byActor)
}
async function broadcastToActors (
data: any,
byActor: ActorModel,
toActors: ActorModel[],
- t: Transaction,
actorsException: ActorModel[] = []
) {
const uris = await computeUris(toActors, actorsException)
- return broadcastTo(uris, data, byActor, t)
+ return broadcastTo(uris, data, byActor)
}
-async function broadcastTo (uris: string[], data: any, byActor: ActorModel, t: Transaction) {
+async function broadcastTo (uris: string[], data: any, byActor: ActorModel) {
if (uris.length === 0) return undefined
logger.debug('Creating broadcast job.', { uris })
- const jobPayload: ActivityPubHttpPayload = {
+ const payload = {
uris,
signatureActorId: byActor.id,
body: data
}
- return activitypubHttpJobScheduler.createJob(t, 'activitypubHttpBroadcastHandler', jobPayload)
+ return JobQueue.Instance.createJob({ type: 'activitypub-http-broadcast', payload })
}
-async function unicastTo (data: any, byActor: ActorModel, toActorUrl: string, t: Transaction) {
+async function unicastTo (data: any, byActor: ActorModel, toActorUrl: string) {
logger.debug('Creating unicast job.', { uri: toActorUrl })
- const jobPayload: ActivityPubHttpPayload = {
- uris: [ toActorUrl ],
+ const payload = {
+ uri: toActorUrl,
signatureActorId: byActor.id,
body: data
}
- return activitypubHttpJobScheduler.createJob(t, 'activitypubHttpUnicastHandler', jobPayload)
+ return JobQueue.Instance.createJob({ type: 'activitypub-http-unicast', payload })
}
function getOriginVideoAudience (video: VideoModel, actorsInvolvedInVideo: ActorModel[]) {
}
}
-function getOriginVideoCommentAudience (
+function getVideoCommentAudience (
videoComment: VideoCommentModel,
threadParentComments: VideoCommentModel[],
actorsInvolvedInVideo: ActorModel[],
function getObjectFollowersAudience (actorsInvolvedInObject: ActorModel[]) {
return {
- to: actorsInvolvedInObject.map(a => a.followersUrl),
+ to: [ ACTIVITY_PUB.PUBLIC ].concat(actorsInvolvedInObject.map(a => a.followersUrl)),
cc: []
}
}
}
async function getAudience (actorSender: ActorModel, t: Transaction, isPublic = true) {
- const followerInboxUrls = await actorSender.getFollowerSharedInboxUrls(t)
-
- return buildAudience(followerInboxUrls, isPublic)
+ return buildAudience([ actorSender.followersUrl ], isPublic)
}
function buildAudience (followerInboxUrls: string[], isPublic = true) {
to = [ ACTIVITY_PUB.PUBLIC ]
cc = followerInboxUrls
} else { // Unlisted
- to = followerInboxUrls
- cc = [ ACTIVITY_PUB.PUBLIC ]
+ to = [ ]
+ cc = [ ]
}
return { to, cc }
}
-function audiencify (object: any, audience: ActivityAudience) {
+function audiencify <T> (object: T, audience: ActivityAudience) {
return Object.assign(object, audience)
}
getObjectFollowersAudience,
forwardActivity,
audiencify,
- getOriginVideoCommentAudience,
+ getVideoCommentAudience,
computeUris,
broadcastToActors
}