From c986175d68a18e96fbd41537a05c7796a2c64f38 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 22 Nov 2017 10:29:55 +0100 Subject: Fetch outbox to grab old activities --- server/controllers/activitypub/inbox.ts | 33 ++------------------------------ server/controllers/activitypub/outbox.ts | 2 -- server/controllers/api/server/follows.ts | 3 +++ 3 files changed, 5 insertions(+), 33 deletions(-) (limited to 'server/controllers') diff --git a/server/controllers/activitypub/inbox.ts b/server/controllers/activitypub/inbox.ts index 807d0bdf4..30e7f706b 100644 --- a/server/controllers/activitypub/inbox.ts +++ b/server/controllers/activitypub/inbox.ts @@ -1,27 +1,10 @@ import * as express from 'express' -import { Activity, ActivityPubCollection, ActivityPubOrderedCollection, ActivityType, RootActivity } from '../../../shared' +import { Activity, ActivityPubCollection, ActivityPubOrderedCollection, RootActivity } from '../../../shared' import { logger } from '../../helpers' import { isActivityValid } from '../../helpers/custom-validators/activitypub/activity' -import { processCreateActivity, processUpdateActivity, processUndoActivity } from '../../lib' -import { processAcceptActivity } from '../../lib/activitypub/process/process-accept' -import { processAddActivity } from '../../lib/activitypub/process/process-add' -import { processAnnounceActivity } from '../../lib/activitypub/process/process-announce' -import { processDeleteActivity } from '../../lib/activitypub/process/process-delete' -import { processFollowActivity } from '../../lib/activitypub/process/process-follow' +import { processActivities } from '../../lib/activitypub/process/process' import { asyncMiddleware, checkSignature, localAccountValidator, signatureValidator } from '../../middlewares' import { activityPubValidator } from '../../middlewares/validators/activitypub/activity' -import { AccountInstance } from '../../models/account/account-interface' - -const processActivity: { [ P in ActivityType ]: (activity: Activity, inboxAccount?: AccountInstance) => Promise } = { - Create: processCreateActivity, - Add: processAddActivity, - Update: processUpdateActivity, - Delete: processDeleteActivity, - Follow: processFollowActivity, - Accept: processAcceptActivity, - Announce: processAnnounceActivity, - Undo: processUndoActivity -} const inboxRouter = express.Router() @@ -69,15 +52,3 @@ async function inboxController (req: express.Request, res: express.Response, nex res.status(204).end() } - -async function processActivities (activities: Activity[], inboxAccount?: AccountInstance) { - for (const activity of activities) { - const activityProcessor = processActivity[activity.type] - if (activityProcessor === undefined) { - logger.warn('Unknown activity type %s.', activity.type, { activityId: activity.id }) - continue - } - - await activityProcessor(activity, inboxAccount) - } -} diff --git a/server/controllers/activitypub/outbox.ts b/server/controllers/activitypub/outbox.ts index 396fa2db5..1a74bde33 100644 --- a/server/controllers/activitypub/outbox.ts +++ b/server/controllers/activitypub/outbox.ts @@ -34,8 +34,6 @@ async function outboxController (req: express.Request, res: express.Response, ne const data = await db.Video.listAllAndSharedByAccountForOutbox(account.id, start, count) const activities: Activity[] = [] - console.log(account.url) - for (const video of data.data) { const videoObject = video.toActivityPubObject() let addActivity: ActivityAdd = await addActivityData(video.url, account, video, video.VideoChannel.url, videoObject) diff --git a/server/controllers/api/server/follows.ts b/server/controllers/api/server/follows.ts index c759824e0..4b54afc8d 100644 --- a/server/controllers/api/server/follows.ts +++ b/server/controllers/api/server/follows.ts @@ -19,6 +19,7 @@ import { sendUndoFollow } from '../../../lib/activitypub/send/send-undo' import { AccountInstance } from '../../../models/account/account-interface' import { retryTransactionWrapper } from '../../../helpers/database-utils' import { saveAccountAndServerIfNotExist } from '../../../lib/activitypub/account' +import { addFetchOutboxJob } from '../../../lib/activitypub/fetch' const serverFollowsRouter = express.Router() @@ -136,6 +137,8 @@ async function follow (fromAccount: AccountInstance, targetAccount: AccountInsta if (accountFollow.state === 'pending') { await sendFollow(accountFollow, t) } + + await addFetchOutboxJob(targetAccount, t) }) } catch (err) { // Reset target account -- cgit v1.2.3