From 60650c77c8a2a98e92d869b237ae4900f369a8fc Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 11 Jan 2018 09:35:50 +0100 Subject: Add scores to follows and remove bad ones --- server/lib/schedulers/abstract-scheduler.ts | 16 +++++++++++++++ .../lib/schedulers/bad-actor-follow-scheduler.ts | 24 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 server/lib/schedulers/abstract-scheduler.ts create mode 100644 server/lib/schedulers/bad-actor-follow-scheduler.ts (limited to 'server/lib/schedulers') diff --git a/server/lib/schedulers/abstract-scheduler.ts b/server/lib/schedulers/abstract-scheduler.ts new file mode 100644 index 000000000..473544ddf --- /dev/null +++ b/server/lib/schedulers/abstract-scheduler.ts @@ -0,0 +1,16 @@ +import { SCHEDULER_INTERVAL } from '../../initializers' + +export abstract class AbstractScheduler { + + private interval: NodeJS.Timer + + enable () { + this.interval = setInterval(() => this.execute(), SCHEDULER_INTERVAL) + } + + disable () { + clearInterval(this.interval) + } + + protected abstract execute () +} diff --git a/server/lib/schedulers/bad-actor-follow-scheduler.ts b/server/lib/schedulers/bad-actor-follow-scheduler.ts new file mode 100644 index 000000000..c6c285ece --- /dev/null +++ b/server/lib/schedulers/bad-actor-follow-scheduler.ts @@ -0,0 +1,24 @@ +import { logger } from '../../helpers/logger' +import { ActorFollowModel } from '../../models/activitypub/actor-follow' +import { AbstractScheduler } from './abstract-scheduler' + +export class BadActorFollowScheduler extends AbstractScheduler { + + private static instance: AbstractScheduler + + private constructor () { + super() + } + + async execute () { + try { + await ActorFollowModel.removeBadActorFollows() + } catch (err) { + logger.error('Error in bad actor follows scheduler.', err) + } + } + + static get Instance () { + return this.instance || (this.instance = new this()) + } +} -- cgit v1.2.3