sharedInbox対応

This commit is contained in:
syuilo 2018-07-21 19:33:56 +09:00
parent 297a7f541e
commit 900a9cb34f
6 changed files with 25 additions and 8 deletions

View file

@ -17,10 +17,12 @@ export type IFollowRequest = {
_followee: {
host: string;
inbox?: string;
sharedInbox?: string;
},
_follower: {
host: string;
inbox?: string;
sharedInbox?: string;
}
};

View file

@ -16,10 +16,12 @@ export type IFollowing = {
_followee: {
host: string;
inbox?: string;
sharedInbox?: string;
},
_follower: {
host: string;
inbox?: string;
sharedInbox?: string;
}
};

View file

@ -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
}
});

View file

@ -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
}
});

View file

@ -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
}
});

View file

@ -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) {