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…
	
	Add table
		Add a link
		
	
		Reference in a new issue