diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-05-03 21:54:25 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-05-03 21:54:25 -0400 |
| commit | ff8b22ce608780bd4084bf26c8a3ba35ac31425d (patch) | |
| tree | 78e7ced4be22a633ef84ca6c96f5c4050f24fe63 /packages/backend/src/server | |
| parent | check suspended users/hosts in following feed (diff) | |
| download | sharkey-ff8b22ce608780bd4084bf26c8a3ba35ac31425d.tar.gz sharkey-ff8b22ce608780bd4084bf26c8a3ba35ac31425d.tar.bz2 sharkey-ff8b22ce608780bd4084bf26c8a3ba35ac31425d.zip | |
apply optimized domain block pattern to silence and bubble checks
Diffstat (limited to 'packages/backend/src/server')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/federation/instances.ts | 35 |
1 files changed, 8 insertions, 27 deletions
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts index d644db479c..eeaebc3708 100644 --- a/packages/backend/src/server/api/endpoints/federation/instances.ts +++ b/packages/backend/src/server/api/endpoints/federation/instances.ts @@ -113,11 +113,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // 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 (select unnest("blockedHosts") as x from "meta")'); + query.andWhere('instance.host IN (select unnest("blockedHosts") as x from "meta")'); } else { - query.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT IN (select unnest("blockedHosts") as x from "meta")'); + query.andWhere('instance.host NOT IN (select unnest("blockedHosts") as x from "meta")'); } } @@ -146,36 +145,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- } if (typeof ps.silenced === 'boolean') { - const meta = await this.metaService.fetch(true); - if (ps.silenced) { - if (meta.silencedHosts.length === 0) { - return []; - } - query.andWhere('instance.host IN (:...silences)', { - silences: meta.silencedHosts, - }); - } else if (meta.silencedHosts.length > 0) { - query.andWhere('instance.host NOT IN (:...silences)', { - silences: meta.silencedHosts, - }); + query.andWhere('instance.host IN (select unnest("silencedHosts") as x from "meta")'); + } else { + query.andWhere('instance.host NOT IN (select unnest("silencedHosts") as x from "meta")'); } } if (typeof ps.bubble === 'boolean') { - const meta = await this.metaService.fetch(true); - if (ps.bubble) { - if (meta.bubbleInstances.length === 0) { - return []; - } - query.andWhere('instance.host IN (:...bubble)', { - bubble: meta.bubbleInstances, - }); - } else if (meta.bubbleInstances.length > 0) { - query.andWhere('instance.host NOT IN (:...bubble)', { - bubble: meta.bubbleInstances, - }); + query.andWhere('instance.host IN (select unnest("bubbleInstances") as x from "meta")'); + } else { + query.andWhere('instance.host NOT IN (select unnest("bubbleInstances") as x from "meta")'); } } |