forked from FoundKeyGang/FoundKey
server: readd "fetch meta only once in skippedInstances""
This reverts commit e446a11bb7
.
Turns out this wasn't really the source of the referenced issue and
someone was able to run with the original commit fine, so adding this
back for now.
This commit is contained in:
parent
bdf2e14a73
commit
18cf228f89
1 changed files with 6 additions and 3 deletions
|
@ -2,6 +2,7 @@ import { db } from '@/db/postgre.js';
|
|||
import { fetchMeta } from '@/misc/fetch-meta.js';
|
||||
import { Instance } from '@/models/entities/instance.js';
|
||||
import { DAY } from '@/const.js';
|
||||
import { Meta } from '@/models/entities/meta.js';
|
||||
|
||||
// Threshold from last contact after which an instance will be considered
|
||||
// "dead" and should no longer get activities delivered to it.
|
||||
|
@ -26,10 +27,11 @@ function matchHost(host: Instance['host'], pattern: string): boolean {
|
|||
* Returns whether a specific host (punycoded) should be blocked.
|
||||
*
|
||||
* @param host punycoded instance host
|
||||
* @param meta a Promise contatining the information from the meta table (oprional)
|
||||
* @returns whether the given host should be blocked
|
||||
*/
|
||||
export async function shouldBlockInstance(host: string): Promise<boolean> {
|
||||
const { blockedHosts } = await fetchMeta();
|
||||
export async function shouldBlockInstance(host: string, meta: Promise<Meta> = fetchMeta()): Promise<boolean> {
|
||||
const { blockedHosts } = await meta;
|
||||
return blockedHosts.some(blockedHost => matchHost(host, blockedHost));
|
||||
}
|
||||
|
||||
|
@ -41,7 +43,8 @@ export async function shouldBlockInstance(host: string): Promise<boolean> {
|
|||
*/
|
||||
export async function skippedInstances(hosts: Array<Instance['host']>): Promise<Array<Instance['host']>> {
|
||||
// Resolve the boolean promises before filtering
|
||||
const shouldSkip = await Promise.all(hosts.map(shouldBlockInstance));
|
||||
const meta = fetchMeta();
|
||||
const shouldSkip = await Promise.all(hosts.map(host => shouldBlockInstance(host, meta)));
|
||||
const skipped = hosts.filter((_, i) => shouldSkip[i]);
|
||||
|
||||
// if possible return early and skip accessing the database
|
||||
|
|
Loading…
Reference in a new issue