X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fschedulers%2Fauto-follow-index-instances.ts;h=0b8cd13898118f815158a14b645508ecf0e6cf2a;hb=903353d67a8d0fdda8465ed6c57b77a9a5afbe92;hp=ef11fc87f944a781db0147a6bb50aaf8c201ca58;hpb=8d5e65349deebd499c0be10fe02d535a77d58ddb;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/schedulers/auto-follow-index-instances.ts b/server/lib/schedulers/auto-follow-index-instances.ts index ef11fc87f..0b8cd1389 100644 --- a/server/lib/schedulers/auto-follow-index-instances.ts +++ b/server/lib/schedulers/auto-follow-index-instances.ts @@ -1,12 +1,12 @@ -import { logger } from '../../helpers/logger' -import { AbstractScheduler } from './abstract-scheduler' -import { INSTANCES_INDEX, SCHEDULER_INTERVALS_MS, SERVER_ACTOR_NAME } from '../../initializers/constants' -import { CONFIG } from '../../initializers/config' import { chunk } from 'lodash' -import { doRequest } from '@server/helpers/requests' -import { ActorFollowModel } from '@server/models/activitypub/actor-follow' +import { doJSONRequest } from '@server/helpers/requests' import { JobQueue } from '@server/lib/job-queue' -import { getServerActor } from '@server/helpers/utils' +import { ActorFollowModel } from '@server/models/activitypub/actor-follow' +import { getServerActor } from '@server/models/application/application' +import { logger } from '../../helpers/logger' +import { CONFIG } from '../../initializers/config' +import { SCHEDULER_INTERVALS_MS, SERVER_ACTOR_NAME } from '../../initializers/constants' +import { AbstractScheduler } from './abstract-scheduler' export class AutoFollowIndexInstances extends AbstractScheduler { @@ -34,12 +34,16 @@ export class AutoFollowIndexInstances extends AbstractScheduler { try { const serverActor = await getServerActor() - const uri = indexUrl + INSTANCES_INDEX.HOSTS_PATH + const searchParams = { count: 1000 } + if (this.lastCheck) Object.assign(searchParams, { since: this.lastCheck.toISOString() }) - const qs = this.lastCheck ? { since: this.lastCheck.toISOString() } : {} this.lastCheck = new Date() - const { body } = await doRequest({ uri, qs, json: true }) + const { body } = await doJSONRequest(indexUrl, { searchParams }) + if (!body.data || Array.isArray(body.data) === false) { + logger.error('Cannot auto follow instances of index %s. Please check the auto follow URL.', indexUrl, { body }) + return + } const hosts: string[] = body.data.map(o => o.host) const chunks = chunk(hosts, 20) @@ -55,8 +59,7 @@ export class AutoFollowIndexInstances extends AbstractScheduler { isAutoFollow: true } - await JobQueue.Instance.createJob({ type: 'activitypub-follow', payload }) - .catch(err => logger.error('Cannot create follow job for %s.', unfollowedHost, err)) + JobQueue.Instance.createJob({ type: 'activitypub-follow', payload }) } }