From 2af337c83905c420b2d9022ee6fd3d6ef5fd1e42 Mon Sep 17 00:00:00 2001
From: Chocobozzz <me@florianbigard.com>
Date: Tue, 10 Nov 2020 16:29:35 +0100
Subject: Cleanup follows of orphean actors

---
 server/models/account/account.ts     |  1 +
 server/models/video/video-channel.ts | 23 +++++++++++++----------
 2 files changed, 14 insertions(+), 10 deletions(-)

(limited to 'server/models')

diff --git a/server/models/account/account.ts b/server/models/account/account.ts
index f97519b14..1162643be 100644
--- a/server/models/account/account.ts
+++ b/server/models/account/account.ts
@@ -228,6 +228,7 @@ export class AccountModel extends Model<AccountModel> {
     }
 
     await ActorFollowModel.removeFollowsOf(instance.Actor.id, options.transaction)
+
     if (instance.isOwned()) {
       return sendDeleteActor(instance.Actor, options.transaction)
     }
diff --git a/server/models/video/video-channel.ts b/server/models/video/video-channel.ts
index 9da965bbc..202dc513f 100644
--- a/server/models/video/video-channel.ts
+++ b/server/models/video/video-channel.ts
@@ -1,3 +1,5 @@
+import * as Bluebird from 'bluebird'
+import { FindOptions, literal, Op, ScopeOptions } from 'sequelize'
 import {
   AllowNull,
   BeforeDestroy,
@@ -23,17 +25,8 @@ import {
   isVideoChannelNameValid,
   isVideoChannelSupportValid
 } from '../../helpers/custom-validators/video-channels'
-import { sendDeleteActor } from '../../lib/activitypub/send'
-import { AccountModel, ScopeNames as AccountModelScopeNames, SummaryOptions as AccountSummaryOptions } from '../account/account'
-import { ActorModel, unusedActorAttributesForAPI } from '../activitypub/actor'
-import { buildServerIdsFollowedBy, buildTrigramSearchIndex, createSimilarityAttribute, getSort, throwIfNotValid } from '../utils'
-import { VideoModel } from './video'
 import { CONSTRAINTS_FIELDS, WEBSERVER } from '../../initializers/constants'
-import { ServerModel } from '../server/server'
-import { FindOptions, Op, literal, ScopeOptions } from 'sequelize'
-import { AvatarModel } from '../avatar/avatar'
-import { VideoPlaylistModel } from './video-playlist'
-import * as Bluebird from 'bluebird'
+import { sendDeleteActor } from '../../lib/activitypub/send'
 import {
   MChannelAccountDefault,
   MChannelActor,
@@ -42,6 +35,14 @@ import {
   MChannelFormattable,
   MChannelSummaryFormattable
 } from '../../types/models/video'
+import { AccountModel, ScopeNames as AccountModelScopeNames, SummaryOptions as AccountSummaryOptions } from '../account/account'
+import { ActorModel, unusedActorAttributesForAPI } from '../activitypub/actor'
+import { ActorFollowModel } from '../activitypub/actor-follow'
+import { AvatarModel } from '../avatar/avatar'
+import { ServerModel } from '../server/server'
+import { buildServerIdsFollowedBy, buildTrigramSearchIndex, createSimilarityAttribute, getSort, throwIfNotValid } from '../utils'
+import { VideoModel } from './video'
+import { VideoPlaylistModel } from './video-playlist'
 
 export enum ScopeNames {
   FOR_API = 'FOR_API',
@@ -293,6 +294,8 @@ export class VideoChannelModel extends Model<VideoChannelModel> {
       instance.Actor = await instance.$get('Actor', { transaction: options.transaction })
     }
 
+    await ActorFollowModel.removeFollowsOf(instance.Actor.id, options.transaction)
+
     if (instance.Actor.isOwned()) {
       return sendDeleteActor(instance.Actor, options.transaction)
     }
-- 
cgit v1.2.3