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;
|
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 })
|
@Index({ unique: true })
|
||||||
@Column('char', {
|
@Column('char', {
|
||||||
length: 16, nullable: true, unique: true,
|
length: 16, nullable: true, unique: true,
|
||||||
|
|
|
@ -86,8 +86,7 @@ function isPublic(id: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function isFollowers(id: string, actor: IRemoteUser) {
|
function isFollowers(id: string, actor: IRemoteUser) {
|
||||||
return [
|
return (
|
||||||
`${actor.uri}/followers`,
|
id === (actor.followersUri || `${actor.uri}/followers`)
|
||||||
// actor.followerUri, // TODO
|
);
|
||||||
].includes(id);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,6 +159,7 @@ export async function createPerson(uri: string, resolver?: Resolver): Promise<Us
|
||||||
host,
|
host,
|
||||||
inbox: person.inbox,
|
inbox: person.inbox,
|
||||||
sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined),
|
sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined),
|
||||||
|
followersUri: person.followers ? getApId(person.followers) : undefined,
|
||||||
featured: person.featured ? getApId(person.featured) : undefined,
|
featured: person.featured ? getApId(person.featured) : undefined,
|
||||||
uri: person.id,
|
uri: person.id,
|
||||||
tags,
|
tags,
|
||||||
|
@ -330,6 +331,7 @@ export async function updatePerson(uri: string, resolver?: Resolver | null, hint
|
||||||
lastFetchedAt: new Date(),
|
lastFetchedAt: new Date(),
|
||||||
inbox: person.inbox,
|
inbox: person.inbox,
|
||||||
sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined),
|
sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined),
|
||||||
|
followersUri: person.followers ? getApId(person.followers) : undefined,
|
||||||
featured: person.featured,
|
featured: person.featured,
|
||||||
emojis: emojiNames,
|
emojis: emojiNames,
|
||||||
name: person.name,
|
name: person.name,
|
||||||
|
|
Loading…
Reference in a new issue