Fix broken follow notification

pull/2004/head
Chocobozzz 2019-08-02 09:46:48 +02:00
parent 075942b212
commit 44b88f180b
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 21 additions and 0 deletions

View File

@ -148,6 +148,7 @@ export class UserNotification implements UserNotificationServer {
break
}
} catch (err) {
this.type = null
console.error(err)
}
}

View File

@ -30,6 +30,7 @@ import { CONSTRAINTS_FIELDS, WEBSERVER } from '../../initializers/constants'
import { FindOptions, IncludeOptions, Op, Transaction, WhereOptions } from 'sequelize'
import { AccountBlocklistModel } from './account-blocklist'
import { ServerBlocklistModel } from '../server/server-blocklist'
import { ActorFollowModel } from '../activitypub/actor-follow'
export enum ScopeNames {
SUMMARY = 'SUMMARY'
@ -220,6 +221,7 @@ export class AccountModel extends Model<AccountModel> {
instance.Actor = await instance.$get('Actor', { transaction: options.transaction }) as ActorModel
}
await ActorFollowModel.removeFollowsOf(instance.Actor.id, options.transaction)
if (instance.isOwned()) {
return sendDeleteActor(instance.Actor, options.transaction)
}

View File

@ -113,6 +113,24 @@ export class ActorFollowModel extends Model<ActorFollowModel> {
])
}
static removeFollowsOf (actorId: number, t?: Transaction) {
const query = {
where: {
[Op.or]: [
{
actorId
},
{
targetActorId: actorId
}
]
},
transaction: t
}
return ActorFollowModel.destroy(query)
}
// Remove actor follows with a score of 0 (too many requests where they were unreachable)
static async removeBadActorFollows () {
const actorFollows = await ActorFollowModel.listBadActorFollows()