Merge branch 'splits-flag' into 'main'

Put zap splits behind a feature flag, disabled by default

See merge request soapbox-pub/ditto!457
This commit is contained in:
Alex Gleason 2024-08-15 03:08:28 +00:00
commit b47cf1c0a5
2 changed files with 17 additions and 11 deletions

View file

@ -262,6 +262,10 @@ class Conf {
static get policy(): string { static get policy(): string {
return Deno.env.get('DITTO_POLICY') || new URL('../data/policy.ts', import.meta.url).pathname; return Deno.env.get('DITTO_POLICY') || new URL('../data/policy.ts', import.meta.url).pathname;
} }
/** Whether zap splits should be enabled. */
static get zapSplitsEnabled(): boolean {
return optionalBooleanSchema.parse(Deno.env.get('ZAP_SPLITS_ENABLED')) ?? false;
}
} }
const optionalBooleanSchema = z const optionalBooleanSchema = z

View file

@ -169,17 +169,19 @@ const createStatusController: AppController = async (c) => {
const author = await getAuthor(await c.get('signer')?.getPublicKey()!); const author = await getAuthor(await c.get('signer')?.getPublicKey()!);
const meta = n.json().pipe(n.metadata()).catch({}).parse(author?.content); if (Conf.zapSplitsEnabled) {
const lnurl = getLnurl(meta); const meta = n.json().pipe(n.metadata()).catch({}).parse(author?.content);
const dittoZapSplit = await getZapSplits(store, Conf.pubkey); const lnurl = getLnurl(meta);
if (lnurl && dittoZapSplit) { const dittoZapSplit = await getZapSplits(store, Conf.pubkey);
let totalSplit = 0; if (lnurl && dittoZapSplit) {
for (const pubkey in dittoZapSplit) { let totalSplit = 0;
totalSplit += dittoZapSplit[pubkey].weight; for (const pubkey in dittoZapSplit) {
tags.push(['zap', pubkey, Conf.relay, dittoZapSplit[pubkey].weight.toString()]); totalSplit += dittoZapSplit[pubkey].weight;
} tags.push(['zap', pubkey, Conf.relay, dittoZapSplit[pubkey].weight.toString()]);
if (totalSplit) { }
tags.push(['zap', author?.pubkey as string, Conf.relay, Math.max(0, 100 - totalSplit).toString()]); if (totalSplit) {
tags.push(['zap', author?.pubkey as string, Conf.relay, Math.max(0, 100 - totalSplit).toString()]);
}
} }
} }