From 885f8e18560ea7cc55970f552fae4ae6780213de Mon Sep 17 00:00:00 2001 From: InspectorCaracal <51038201+InspectorCaracal@users.noreply.github.com> Date: Fri, 5 Feb 2021 19:50:33 -0700 Subject: Parse followers audience from followers URI (#7112) * add followersUri * add followersUri to audience parse * fetch followersUri * followersUri db migration * update followersUri * Rename 1611354329133-followersUri to 1611354329133-followersUri.ts * typo * Update person.ts * create/update person consistency * Update audience.ts * missing paren * tabs * use strict equality * Update audience.ts --- src/models/entities/user.ts | 6 ++++++ src/remote/activitypub/audience.ts | 7 +++---- src/remote/activitypub/models/person.ts | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/models/entities/user.ts b/src/models/entities/user.ts index ba2062fdb6..91fbe35d94 100644 --- a/src/models/entities/user.ts +++ b/src/models/entities/user.ts @@ -201,6 +201,12 @@ export class User { }) public uri: string | null; + @Column('varchar', { + length: 512, nullable: true, + comment: 'The URI of the user Follower Collection. It will be null if the origin of the user is local.' + }) + public followersUri: string | null; + @Index({ unique: true }) @Column('char', { length: 16, nullable: true, unique: true, diff --git a/src/remote/activitypub/audience.ts b/src/remote/activitypub/audience.ts index 7cff678ae3..85a70f8286 100644 --- a/src/remote/activitypub/audience.ts +++ b/src/remote/activitypub/audience.ts @@ -86,8 +86,7 @@ function isPublic(id: string) { } function isFollowers(id: string, actor: IRemoteUser) { - return [ - `${actor.uri}/followers`, - // actor.followerUri, // TODO - ].includes(id); + return ( + id === (actor.followersUri || `${actor.uri}/followers`) + ); } diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts index f0a312b21a..8f1483ab43 100644 --- a/src/remote/activitypub/models/person.ts +++ b/src/remote/activitypub/models/person.ts @@ -159,6 +159,7 @@ export async function createPerson(uri: string, resolver?: Resolver): Promise