From 7015df37e3545d835ecd71cdcd1910fbb16e80da Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 17 Aug 2021 21:48:59 +0900 Subject: enhance(server): Improve user block (#7640) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance(server): Improve user block * Update CHANGELOG.md * ユーザーリスト対応 * 相手から見れなくなるように * Update 1629004542760-chart-reindex.ts https://github.com/misskey-dev/misskey/commit/2365761ba5445f26c8b66b3b20ef4be44e70d549#commitcomment-54919821 * update test * add test * add todos * Update 1629004542760-chart-reindex.ts --- src/services/note/create.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/services/note/create.ts') diff --git a/src/services/note/create.ts b/src/services/note/create.ts index b9b39d25e4..13d612cf80 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -16,7 +16,7 @@ import { extractMentions } from '@/misc/extract-mentions'; import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm'; import { extractHashtags } from '@/misc/extract-hashtags'; import { Note, IMentionedRemoteUsers } from '../../models/entities/note'; -import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings } from '../../models'; +import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings, Blockings } from '../../models'; import { DriveFile } from '../../models/entities/drive-file'; import { App } from '../../models/entities/app'; import { Not, getConnection, In } from 'typeorm'; @@ -265,8 +265,10 @@ export default async (user: { id: User['id']; username: User['username']; host: .andWhere(`following.followeeId = :userId`, { userId: note.userId }) .getMany() .then(async followings => { + const blockings = await Blockings.find({ blockerId: user.id }); // TODO: キャッシュしたい const followers = followings.map(f => f.followerId); for (const antenna of (await getAntennas())) { + if (blockings.some(blocking => blocking.blockeeId === antenna.userId)) continue; // この処理は checkHitAntenna 内でやるようにしてもいいかも checkHitAntenna(antenna, note, user, followers).then(hit => { if (hit) { addNoteToAntenna(antenna, note, user); -- cgit v1.2.3-freya