sharedInbox対応
This commit is contained in:
		
							parent
							
								
									297a7f541e
								
							
						
					
					
						commit
						900a9cb34f
					
				
					 6 changed files with 25 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -17,10 +17,12 @@ export type IFollowRequest = {
 | 
			
		|||
	_followee: {
 | 
			
		||||
		host: string;
 | 
			
		||||
		inbox?: string;
 | 
			
		||||
		sharedInbox?: string;
 | 
			
		||||
	},
 | 
			
		||||
	_follower: {
 | 
			
		||||
		host: string;
 | 
			
		||||
		inbox?: string;
 | 
			
		||||
		sharedInbox?: string;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,10 +16,12 @@ export type IFollowing = {
 | 
			
		|||
	_followee: {
 | 
			
		||||
		host: string;
 | 
			
		||||
		inbox?: string;
 | 
			
		||||
		sharedInbox?: string;
 | 
			
		||||
	},
 | 
			
		||||
	_follower: {
 | 
			
		||||
		host: string;
 | 
			
		||||
		inbox?: string;
 | 
			
		||||
		sharedInbox?: string;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,11 +22,13 @@ export default async function(follower: IUser, followee: IUser) {
 | 
			
		|||
			// 非正規化
 | 
			
		||||
			_follower: {
 | 
			
		||||
				host: follower.host,
 | 
			
		||||
				inbox: isRemoteUser(follower) ? follower.inbox : undefined
 | 
			
		||||
				inbox: isRemoteUser(follower) ? follower.inbox : undefined,
 | 
			
		||||
				sharedInbox: isRemoteUser(follower) ? follower.sharedInbox : undefined
 | 
			
		||||
			},
 | 
			
		||||
			_followee: {
 | 
			
		||||
				host: followee.host,
 | 
			
		||||
				inbox: isRemoteUser(followee) ? followee.inbox : undefined
 | 
			
		||||
				inbox: isRemoteUser(followee) ? followee.inbox : undefined,
 | 
			
		||||
				sharedInbox: isRemoteUser(followee) ? followee.sharedInbox : undefined
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,11 +18,13 @@ export default async function(followee: IUser, follower: IUser) {
 | 
			
		|||
		// 非正規化
 | 
			
		||||
		_follower: {
 | 
			
		||||
			host: follower.host,
 | 
			
		||||
			inbox: isRemoteUser(follower) ? follower.inbox : undefined
 | 
			
		||||
			inbox: isRemoteUser(follower) ? follower.inbox : undefined,
 | 
			
		||||
			sharedInbox: isRemoteUser(follower) ? follower.sharedInbox : undefined
 | 
			
		||||
		},
 | 
			
		||||
		_followee: {
 | 
			
		||||
			host: followee.host,
 | 
			
		||||
			inbox: isRemoteUser(followee) ? followee.inbox : undefined
 | 
			
		||||
			inbox: isRemoteUser(followee) ? followee.inbox : undefined,
 | 
			
		||||
			sharedInbox: isRemoteUser(followee) ? followee.sharedInbox : undefined
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,11 +17,13 @@ export default async function(follower: IUser, followee: IUser) {
 | 
			
		|||
		// 非正規化
 | 
			
		||||
		_follower: {
 | 
			
		||||
			host: follower.host,
 | 
			
		||||
			inbox: isRemoteUser(follower) ? follower.inbox : undefined
 | 
			
		||||
			inbox: isRemoteUser(follower) ? follower.inbox : undefined,
 | 
			
		||||
			sharedInbox: isRemoteUser(follower) ? follower.sharedInbox : undefined
 | 
			
		||||
		},
 | 
			
		||||
		_followee: {
 | 
			
		||||
			host: followee.host,
 | 
			
		||||
			inbox: isRemoteUser(followee) ? followee.inbox : undefined
 | 
			
		||||
			inbox: isRemoteUser(followee) ? followee.inbox : undefined,
 | 
			
		||||
			sharedInbox: isRemoteUser(followee) ? followee.sharedInbox : undefined
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -403,7 +403,9 @@ async function publishToFollowers(note: INote, noteObj: any, user: IUser, noteAc
 | 
			
		|||
		followeeId: note.userId
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	followers.map(async (following) => {
 | 
			
		||||
	const queue: string[] = [];
 | 
			
		||||
 | 
			
		||||
	followers.map(following => {
 | 
			
		||||
		const follower = following._follower;
 | 
			
		||||
 | 
			
		||||
		if (isLocalUser(follower)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -423,10 +425,15 @@ async function publishToFollowers(note: INote, noteObj: any, user: IUser, noteAc
 | 
			
		|||
		} else {
 | 
			
		||||
			// フォロワーがリモートユーザーかつ投稿者がローカルユーザーなら投稿を配信
 | 
			
		||||
			if (isLocalUser(user)) {
 | 
			
		||||
				deliver(user, noteActivity, follower.inbox);
 | 
			
		||||
				const inbox = follower.sharedInbox || follower.inbox;
 | 
			
		||||
				if (!queue.includes(inbox)) queue.push(inbox);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	queue.forEach(inbox => {
 | 
			
		||||
		deliver(user, noteActivity, inbox);
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function deliverNoteToMentionedRemoteUsers(mentionedUsers: IUser[], user: ILocalUser, noteActivity: any) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue