summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/NoteCreateService.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-09-21 18:48:15 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-09-21 18:48:15 +0900
commite3f151e2307e4c0d7b9cdfc7deba2ff028adce03 (patch)
tree15ef05643d8fc99a724fa97f8af8f55530af1379 /packages/backend/src/core/NoteCreateService.ts
parent2023.9.0-beta.10 (diff)
downloadsharkey-e3f151e2307e4c0d7b9cdfc7deba2ff028adce03.tar.gz
sharkey-e3f151e2307e4c0d7b9cdfc7deba2ff028adce03.tar.bz2
sharkey-e3f151e2307e4c0d7b9cdfc7deba2ff028adce03.zip
feat: 指定したユーザーの投稿通知
Resolve #11499
Diffstat (limited to 'packages/backend/src/core/NoteCreateService.ts')
-rw-r--r--packages/backend/src/core/NoteCreateService.ts19
1 files changed, 18 insertions, 1 deletions
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index 4b0d818862..972319ddcf 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -14,7 +14,7 @@ import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mf
import { extractHashtags } from '@/misc/extract-hashtags.js';
import type { IMentionedRemoteUsers } from '@/models/Note.js';
import { MiNote } from '@/models/Note.js';
-import type { ChannelsRepository, InstancesRepository, MutedNotesRepository, MutingsRepository, NotesRepository, NoteThreadMutingsRepository, UserProfilesRepository, UsersRepository } from '@/models/_.js';
+import type { ChannelsRepository, FollowingsRepository, InstancesRepository, MutedNotesRepository, MutingsRepository, NotesRepository, NoteThreadMutingsRepository, UserProfilesRepository, UsersRepository } from '@/models/_.js';
import type { MiDriveFile } from '@/models/DriveFile.js';
import type { MiApp } from '@/models/App.js';
import { concat } from '@/misc/prelude/array.js';
@@ -185,6 +185,9 @@ export class NoteCreateService implements OnApplicationShutdown {
@Inject(DI.noteThreadMutingsRepository)
private noteThreadMutingsRepository: NoteThreadMutingsRepository,
+ @Inject(DI.followingsRepository)
+ private followingsRepository: FollowingsRepository,
+
private userEntityService: UserEntityService,
private noteEntityService: NoteEntityService,
private idService: IdService,
@@ -505,6 +508,20 @@ export class NoteCreateService implements OnApplicationShutdown {
this.saveReply(data.reply, note);
}
+ if (data.reply == null) {
+ this.followingsRepository.findBy({
+ followeeId: user.id,
+ notify: 'normal',
+ }).then(followings => {
+ for (const following of followings) {
+ this.notificationService.createNotification(following.followerId, 'note', {
+ notifierId: user.id,
+ noteId: note.id,
+ });
+ }
+ });
+ }
+
// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき
if (data.renote && (await this.noteEntityService.countSameRenotes(user.id, data.renote.id, note.id) === 0)) {
if (!user.isBot) this.incRenoteCount(data.renote);