From 5a559a0fff6597a4b4eaacb6fcdfd99182201f49 Mon Sep 17 00:00:00 2001 From: atsu1125 Date: Wed, 21 Aug 2024 21:33:38 +0900 Subject: [PATCH] fix(backend): Judge instance block silence by endsWith (instancelist) --- .../src/server/api/endpoints/federation/instances.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts index 41954129e636..c481fae791f4 100644 --- a/packages/backend/src/server/api/endpoints/federation/instances.ts +++ b/packages/backend/src/server/api/endpoints/federation/instances.ts @@ -101,9 +101,9 @@ export default class extends Endpoint { // eslint- if (typeof ps.blocked === 'boolean') { const meta = await this.metaService.fetch(true); if (ps.blocked) { - query.andWhere(meta.blockedHosts.length === 0 ? '1=0' : 'instance.host IN (:...blocks)', { blocks: meta.blockedHosts }); + query.andWhere(meta.blockedHosts.length === 0 ? '1=0' : 'instance.host ILIKE ANY(ARRAY[:...blocks])', { blocks: meta.blockedHosts.flatMap(x => [x, `%.${x}`]) }); } else { - query.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT IN (:...blocks)', { blocks: meta.blockedHosts }); + query.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT ILIKE ALL(ARRAY[:...blocks])', { blocks: meta.blockedHosts.flatMap(x => [x, `%.${x}`]) }); } } @@ -130,12 +130,12 @@ export default class extends Endpoint { // eslint- if (meta.silencedHosts.length === 0) { return []; } - query.andWhere('instance.host IN (:...silences)', { - silences: meta.silencedHosts, + query.andWhere('instance.host ILIKE ANY(ARRAY[:...silences])', { + silences: meta.silencedHosts.flatMap(x => [x, `%.${x}`]), }); } else if (meta.silencedHosts.length > 0) { - query.andWhere('instance.host NOT IN (:...silences)', { - silences: meta.silencedHosts, + query.andWhere('instance.host NOT ILIKE ALL(ARRAY[:...silences])', { + silences: meta.silencedHosts.flatMap(x => [x, `%.${x}`]), }); } }