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
This commit is contained in:
parent
c88902e640
commit
885f8e1856
4 changed files with 27 additions and 4 deletions
16
migration/1611354329133-followersUri.ts
Normal file
16
migration/1611354329133-followersUri.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class followersUri1611354329133 implements MigrationInterface {
|
||||
name = 'followersUri1611354329133'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "followersUri" varchar(512) DEFAULT NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "followersUri"`);
|
||||
}
|
||||
|
||||
}
|
|
@ -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,
|
||||
|
|
|
@ -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`)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -159,6 +159,7 @@ export async function createPerson(uri: string, resolver?: Resolver): Promise<Us
|
|||
host,
|
||||
inbox: person.inbox,
|
||||
sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined),
|
||||
followersUri: person.followers ? getApId(person.followers) : undefined,
|
||||
featured: person.featured ? getApId(person.featured) : undefined,
|
||||
uri: person.id,
|
||||
tags,
|
||||
|
@ -330,6 +331,7 @@ export async function updatePerson(uri: string, resolver?: Resolver | null, hint
|
|||
lastFetchedAt: new Date(),
|
||||
inbox: person.inbox,
|
||||
sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined),
|
||||
followersUri: person.followers ? getApId(person.followers) : undefined,
|
||||
featured: person.featured,
|
||||
emojis: emojiNames,
|
||||
name: person.name,
|
||||
|
|
Loading…
Reference in a new issue