parent
e9ba896431
commit
8dc5edde76
|
@ -30,6 +30,7 @@
|
||||||
* デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。
|
* デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。
|
||||||
- カスタム絵文字のライセンスを複数でセットできるようになりました。
|
- カスタム絵文字のライセンスを複数でセットできるようになりました。
|
||||||
- 管理者が予約ユーザー名を設定できるようになりました。
|
- 管理者が予約ユーザー名を設定できるようになりました。
|
||||||
|
- フォローリクエストの通知が残る問題を修正
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
- 通知の表示をカスタマイズできるように
|
- 通知の表示をカスタマイズできるように
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { ModuleRef } from '@nestjs/core';
|
import { ModuleRef } from '@nestjs/core';
|
||||||
import { In } from 'typeorm';
|
import { In } from 'typeorm';
|
||||||
import { DI } from '@/di-symbols.js';
|
import { DI } from '@/di-symbols.js';
|
||||||
import type { AccessTokensRepository, NoteReactionsRepository, NotesRepository, User, UsersRepository } from '@/models/index.js';
|
import type { AccessTokensRepository, FollowRequestsRepository, NoteReactionsRepository, NotesRepository, User, UsersRepository } from '@/models/index.js';
|
||||||
import { awaitAll } from '@/misc/prelude/await-all.js';
|
import { awaitAll } from '@/misc/prelude/await-all.js';
|
||||||
import type { Notification } from '@/models/entities/Notification.js';
|
import type { Notification } from '@/models/entities/Notification.js';
|
||||||
import type { Note } from '@/models/entities/Note.js';
|
import type { Note } from '@/models/entities/Note.js';
|
||||||
|
@ -35,6 +35,9 @@ export class NotificationEntityService implements OnModuleInit {
|
||||||
@Inject(DI.noteReactionsRepository)
|
@Inject(DI.noteReactionsRepository)
|
||||||
private noteReactionsRepository: NoteReactionsRepository,
|
private noteReactionsRepository: NoteReactionsRepository,
|
||||||
|
|
||||||
|
@Inject(DI.followRequestsRepository)
|
||||||
|
private followRequestsRepository: FollowRequestsRepository,
|
||||||
|
|
||||||
@Inject(DI.accessTokensRepository)
|
@Inject(DI.accessTokensRepository)
|
||||||
private accessTokensRepository: AccessTokensRepository,
|
private accessTokensRepository: AccessTokensRepository,
|
||||||
|
|
||||||
|
@ -131,6 +134,15 @@ export class NotificationEntityService implements OnModuleInit {
|
||||||
});
|
});
|
||||||
const packedUsers = new Map(packedUsersArray.map(p => [p.id, p]));
|
const packedUsers = new Map(packedUsersArray.map(p => [p.id, p]));
|
||||||
|
|
||||||
|
// 既に解決されたフォローリクエストの通知を除外
|
||||||
|
const followRequestNotifications = validNotifications.filter(x => x.type === 'receiveFollowRequest');
|
||||||
|
if (followRequestNotifications.length > 0) {
|
||||||
|
const reqs = await this.followRequestsRepository.find({
|
||||||
|
where: { followerId: In(followRequestNotifications.map(x => x.notifierId!)) },
|
||||||
|
});
|
||||||
|
validNotifications = validNotifications.filter(x => (x.type !== 'receiveFollowRequest') || reqs.some(r => r.followerId === x.notifierId));
|
||||||
|
}
|
||||||
|
|
||||||
return await Promise.all(validNotifications.map(x => this.pack(x, meId, {}, {
|
return await Promise.all(validNotifications.map(x => this.pack(x, meId, {}, {
|
||||||
packedNotes,
|
packedNotes,
|
||||||
packedUsers,
|
packedUsers,
|
||||||
|
|
Loading…
Reference in New Issue