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') {
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<typeof meta, typeof paramDef> { // 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}`]),
});
}
}