diff --git a/packages/backend/src/server/api/endpoints/antennas/notes.ts b/packages/backend/src/server/api/endpoints/antennas/notes.ts index f4dfe1ecc4..c32f2be7cd 100644 --- a/packages/backend/src/server/api/endpoints/antennas/notes.ts +++ b/packages/backend/src/server/api/endpoints/antennas/notes.ts @@ -113,6 +113,18 @@ export default class extends Endpoint { // eslint- .leftJoinAndSelect('reply.user', 'replyUser') .leftJoinAndSelect('renote.user', 'renoteUser'); + if (antenna.hideNotesInSensitiveChannel) { + // TypeORMにはRIGHT JOINがないので、サブクエリで代用。 + query + .andWhere('note.channelId IS NULL OR EXISTS(' + + query.subQuery() + .from('channel', 'channel') + .where('channel.id = note.channelId') + .andWhere('channel.isSensitive = false') + .getQuery() + + ' )'); + } + this.queryService.generateVisibilityQuery(query, me); this.queryService.generateMutedUserQuery(query, me); this.queryService.generateBlockedUserQuery(query, me);