Change: 絵文字リアクションの通知のグループ化で、アカウントを絵文字の種類ごとに表示 (#796)

* Change: 絵文字リアクションの通知のグループ化で、アカウントを絵文字の種類ごとに表示

* Fix lint

* アカウントの一括取得数を制限

* ストリーミング対応

* Fix

* Fix

* Fix

* Fix some problems

* Fix
This commit is contained in:
KMY(雪あすか) 2024-08-17 08:16:27 +09:00 committed by GitHub
parent 5dec110dec
commit f14c2d3ada
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 258 additions and 7 deletions

View file

@ -211,6 +211,41 @@ function processNewNotification(
if (existingGroupIndex > -1) {
const existingGroup = groups[existingGroupIndex];
if (existingGroup && existingGroup.type !== 'gap') {
// Update emoji reaction emoji groups
if (existingGroup.type === 'emoji_reaction') {
const emojiReactionGroups = existingGroup.emojiReactionGroups;
const emojiReactionData = notification.emoji_reaction;
if (emojiReactionGroups && emojiReactionData) {
const sameEmojiIndex = emojiReactionGroups.findIndex(
(g) => g.emoji.name === emojiReactionData.name,
);
if (sameEmojiIndex > -1) {
const sameEmoji = emojiReactionGroups[sameEmojiIndex];
if (sameEmoji) {
if (
!sameEmoji.sampleAccountIds.includes(notification.account.id) &&
sameEmoji.sampleAccountIds.unshift(notification.account.id) >
NOTIFICATIONS_GROUP_MAX_AVATARS
)
sameEmoji.sampleAccountIds.pop();
emojiReactionGroups.splice(sameEmojiIndex, 1);
emojiReactionGroups.unshift(sameEmoji);
}
} else {
emojiReactionGroups.unshift({
emoji: emojiReactionData,
sampleAccountIds: [notification.account.id],
});
}
}
}
}
if (
existingGroup &&
existingGroup.type !== 'gap' &&