summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/UtilityService.ts
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-05-24 18:42:07 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-05-28 21:31:40 -0400
commitb422d5bc9d44e146b41f163c0101664a9b49268b (patch)
tree1db5677e753fe90fbcdc1dbd4886d3eaf79123f2 /packages/backend/src/core/UtilityService.ts
parentpersist changes to meta host lists to instance table (diff)
downloadsharkey-b422d5bc9d44e146b41f163c0101664a9b49268b.tar.gz
sharkey-b422d5bc9d44e146b41f163c0101664a9b49268b.tar.bz2
sharkey-b422d5bc9d44e146b41f163c0101664a9b49268b.zip
add utility service overloads for quickly checking hosts against meta values
Diffstat (limited to 'packages/backend/src/core/UtilityService.ts')
-rw-r--r--packages/backend/src/core/UtilityService.ts39
1 files changed, 33 insertions, 6 deletions
diff --git a/packages/backend/src/core/UtilityService.ts b/packages/backend/src/core/UtilityService.ts
index 170afc72dc..3098367392 100644
--- a/packages/backend/src/core/UtilityService.ts
+++ b/packages/backend/src/core/UtilityService.ts
@@ -49,22 +49,49 @@ export class UtilityService {
return regexp.test(email);
}
+ public isBlockedHost(host: string | null): boolean;
+ public isBlockedHost(blockedHosts: string[], host: string | null): boolean;
@bindThis
- public isBlockedHost(blockedHosts: string[], host: string | null): boolean {
+ public isBlockedHost(blockedHostsOrHost: string[] | string | null, host?: string | null): boolean {
+ const blockedHosts = Array.isArray(blockedHostsOrHost) ? blockedHostsOrHost : this.meta.blockedHosts;
+ host = Array.isArray(blockedHostsOrHost) ? host : blockedHostsOrHost;
+
if (host == null) return false;
return blockedHosts.some(x => `.${host.toLowerCase()}`.endsWith(`.${x}`));
}
+ public isSilencedHost(host: string | null): boolean;
+ public isSilencedHost(silencedHosts: string[], host: string | null): boolean;
@bindThis
- public isSilencedHost(silencedHosts: string[] | undefined, host: string | null): boolean {
- if (!silencedHosts || host == null) return false;
+ public isSilencedHost(silencedHostsOrHost: string[] | string | null, host?: string | null): boolean {
+ const silencedHosts = Array.isArray(silencedHostsOrHost) ? silencedHostsOrHost : this.meta.silencedHosts;
+ host = Array.isArray(silencedHostsOrHost) ? host : silencedHostsOrHost;
+
+ if (host == null) return false;
return silencedHosts.some(x => `.${host.toLowerCase()}`.endsWith(`.${x}`));
}
+ public isMediaSilencedHost(host: string | null): boolean;
+ public isMediaSilencedHost(silencedHosts: string[], host: string | null): boolean;
@bindThis
- public isMediaSilencedHost(silencedHosts: string[] | undefined, host: string | null): boolean {
- if (!silencedHosts || host == null) return false;
- return silencedHosts.some(x => `.${host.toLowerCase()}`.endsWith(`.${x}`));
+ public isMediaSilencedHost(mediaSilencedHostsOrHost: string[] | string | null, host?: string | null): boolean {
+ const mediaSilencedHosts = Array.isArray(mediaSilencedHostsOrHost) ? mediaSilencedHostsOrHost : this.meta.mediaSilencedHosts;
+ host = Array.isArray(mediaSilencedHostsOrHost) ? host : mediaSilencedHostsOrHost;
+
+ if (host == null) return false;
+ return mediaSilencedHosts.some(x => `.${host.toLowerCase()}`.endsWith(`.${x}`));
+ }
+
+ @bindThis
+ public isAllowListedHost(host: string | null): boolean {
+ if (host == null) return false;
+ return this.meta.federationHosts.some(x => `.${host.toLowerCase()}`.endsWith(`.${x}`));
+ }
+
+ @bindThis
+ public isBubbledHost(host: string | null): boolean {
+ if (host == null) return false;
+ return this.meta.bubbleInstances.some(x => `.${host.toLowerCase()}`.endsWith(`.${x}`));
}
@bindThis