akkounts/extras/strfry/strfry-policy.ts
Râu Cao 29ff486683
Port strfry policies to @nostrify/policies
Use packages from JSR and adapt code for new policy APIs
2025-04-15 19:01:22 +04:00

32 lines
961 B
TypeScript
Executable File

#!/bin/sh
//bin/true; exec deno run --unstable-kv -A "$0" "$@"
import {
AntiDuplicationPolicy,
HellthreadPolicy,
PipePolicy,
readStdin,
writeStdout,
} from 'jsr:@nostrify/policies';
import { strfry } from 'jsr:@nostrify/strfry';
import { LdapConfig, LdapPolicy } from './ldap-policy.ts';
import { load } from "https://deno.land/std@0.224.0/dotenv/mod.ts";
const dirname = new URL('.', import.meta.url).pathname;
await load({ envPath: `${dirname}/.env`, export: true });
const ldapConfig: LdapConfig = {
url: Deno.env.get("LDAP_URL"),
bindDN: Deno.env.get("LDAP_BIND_DN"),
password: Deno.env.get("LDAP_PASSWORD"),
searchDN: Deno.env.get("LDAP_SEARCH_DN"),
whitelistPubkeys: Deno.env.get("WHITELIST_PUBKEYS")?.split(',')
}
const policy = new PipePolicy([
new HellthreadPolicy({ limit: 10 }),
new AntiDuplicationPolicy({ kv: await Deno.openKv(), expireIn: 60000, minLength: 50 }),
new LdapPolicy(ldapConfig)
]);
await strfry(policy);