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