aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/job-queue/handlers/activitypub-http-fetcher.ts
blob: 10c0e606f6123afb6b938d055c90291a74bcded2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import * as kue from 'kue'
import { logger } from '../../../helpers/logger'
import { processActivities } from '../../activitypub/process'
import { ActivitypubHttpBroadcastPayload } from './activitypub-http-broadcast'
import { crawlCollectionPage } from '../../activitypub/crawl'
import { Activity } from '../../../../shared/models/activitypub'

export type ActivitypubHttpFetcherPayload = {
  uris: string[]
}

async function processActivityPubHttpFetcher (job: kue.Job) {
  logger.info('Processing ActivityPub fetcher in job %d.', job.id)

  const payload = job.data as ActivitypubHttpBroadcastPayload

  for (const uri of payload.uris) {
    await crawlCollectionPage<Activity>(uri, (items) => processActivities(items))
  }
}

// ---------------------------------------------------------------------------

export {
  processActivityPubHttpFetcher
}