Return streak data through the accounts API

This commit is contained in:
Alex Gleason 2025-02-05 17:23:54 -06:00
parent b15838a08f
commit 430fd196d7
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7
2 changed files with 13 additions and 0 deletions

View file

@ -36,6 +36,10 @@ export interface MastodonAccount {
};
ditto: {
captcha_solved: boolean;
streak: {
days: number;
broken: number;
};
};
};
statuses_count: number;

View file

@ -69,6 +69,11 @@ async function renderAccount(
verified_at: null,
})) ?? [];
const streakStart = parseInt(event.user?.tags.find(([name]) => name === 'ditto.streak.start')?.[1]!);
const streakEnd = parseInt(event.user?.tags.find(([name]) => name === 'ditto.streak.end')?.[1]!);
const streakDays = Math.ceil((streakEnd - streakStart) / 86400);
const streakBroken = Math.floor((nostrNow() - streakEnd) / 86400);
return {
id: pubkey,
acct,
@ -103,6 +108,10 @@ async function renderAccount(
},
ditto: {
captcha_solved: names.has('captcha_solved'),
streak: {
days: streakDays || 0,
broken: streakBroken || 0,
},
},
}
: undefined,