fix(backend): Judge instance block silence by endsWith (instancelist)

This commit is contained in:
atsu1125 2024-08-21 21:33:38 +09:00
parent 043ab1f69b
commit 5a559a0fff
No known key found for this signature in database
GPG Key ID: 42A618322418F68C
1 changed files with 6 additions and 6 deletions

View File

@ -101,9 +101,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
if (typeof ps.blocked === 'boolean') { if (typeof ps.blocked === 'boolean') {
const meta = await this.metaService.fetch(true); const meta = await this.metaService.fetch(true);
if (ps.blocked) { 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 { } 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<typeof meta, typeof paramDef> { // eslint-
if (meta.silencedHosts.length === 0) { if (meta.silencedHosts.length === 0) {
return []; return [];
} }
query.andWhere('instance.host IN (:...silences)', { query.andWhere('instance.host ILIKE ANY(ARRAY[:...silences])', {
silences: meta.silencedHosts, silences: meta.silencedHosts.flatMap(x => [x, `%.${x}`]),
}); });
} else if (meta.silencedHosts.length > 0) { } else if (meta.silencedHosts.length > 0) {
query.andWhere('instance.host NOT IN (:...silences)', { query.andWhere('instance.host NOT ILIKE ALL(ARRAY[:...silences])', {
silences: meta.silencedHosts, silences: meta.silencedHosts.flatMap(x => [x, `%.${x}`]),
}); });
} }
} }