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