From 31d93c80525ef450f528287c50ed22270892c432 Mon Sep 17 00:00:00 2001 From: dakkar Date: Fri, 2 May 2025 15:26:15 +0100 Subject: nicer SQL checks for blocked hosts instead of passing a (possibly gigantic) array from JS, we get PostgreSQL to look at the value in the `meta` table directly tested the `federation/instances` endpoint, and the `QueryService` methods; I have not tested the charts --- packages/backend/src/core/QueryService.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'packages/backend/src/core/QueryService.ts') diff --git a/packages/backend/src/core/QueryService.ts b/packages/backend/src/core/QueryService.ts index fb4335b55d..50a72e8aa6 100644 --- a/packages/backend/src/core/QueryService.ts +++ b/packages/backend/src/core/QueryService.ts @@ -261,8 +261,7 @@ export class QueryService { if (this.meta.blockedHosts.length === 0) { nonBlockedHostQuery = () => '1=1'; } else { - nonBlockedHostQuery = (match: string) => `${match} NOT ILIKE ALL(ARRAY[:...blocked])`; - q.setParameters({ blocked: this.meta.blockedHosts.flatMap(x => [x, `%.${x}`]) }); + nonBlockedHostQuery = (match: string) => `('.' || ${match}) NOT ILIKE ALL(select '%.' || x from (select unnest("blockedHosts") as x from "meta") t)`; } if (excludeAuthor) { -- cgit v1.2.3-freya