From 2ba92871319d7af63472c1380664a9f9eeb1c690 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 19 Mar 2019 16:23:02 +0100 Subject: Cleanup invalid rates/comments/shares --- server/lib/job-queue/handlers/activitypub-http-fetcher.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'server/lib/job-queue') diff --git a/server/lib/job-queue/handlers/activitypub-http-fetcher.ts b/server/lib/job-queue/handlers/activitypub-http-fetcher.ts index 52225f64f..23d33c26f 100644 --- a/server/lib/job-queue/handlers/activitypub-http-fetcher.ts +++ b/server/lib/job-queue/handlers/activitypub-http-fetcher.ts @@ -1,4 +1,5 @@ import * as Bull from 'bull' +import * as Bluebird from 'bluebird' import { logger } from '../../../helpers/logger' import { processActivities } from '../../activitypub/process' import { addVideoComments } from '../../activitypub/video-comments' @@ -7,6 +8,9 @@ import { VideoModel } from '../../../models/video/video' import { addVideoShares, createRates } from '../../activitypub' import { createAccountPlaylists } from '../../activitypub/playlist' import { AccountModel } from '../../../models/account/account' +import { AccountVideoRateModel } from '../../../models/account/account-video-rate' +import { VideoShareModel } from '../../../models/video/video-share' +import { VideoCommentModel } from '../../../models/video/video-comment' type FetchType = 'activity' | 'video-likes' | 'video-dislikes' | 'video-shares' | 'video-comments' | 'account-playlists' @@ -37,7 +41,14 @@ async function processActivityPubHttpFetcher (job: Bull.Job) { 'account-playlists': items => createAccountPlaylists(items, account) } - return crawlCollectionPage(payload.uri, fetcherType[payload.type]) + const cleanerType: { [ id in FetchType ]?: (crawlStartDate: Date) => Bluebird } = { + 'video-likes': crawlStartDate => AccountVideoRateModel.cleanOldRatesOf(video.id, 'like' as 'like', crawlStartDate), + 'video-dislikes': crawlStartDate => AccountVideoRateModel.cleanOldRatesOf(video.id, 'dislike' as 'dislike', crawlStartDate), + 'video-shares': crawlStartDate => VideoShareModel.cleanOldSharesOf(video.id, crawlStartDate), + 'video-comments': crawlStartDate => VideoCommentModel.cleanOldCommentsOf(video.id, crawlStartDate) + } + + return crawlCollectionPage(payload.uri, fetcherType[payload.type], cleanerType[payload.type]) } // --------------------------------------------------------------------------- -- cgit v1.2.3