From 1cd7c99bda8a09774b1c13d3327d84f15ceec594 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 4 Oct 2024 19:26:47 -0500 Subject: [PATCH] Add account.source.ditto.captch_solved field --- src/controllers/api/accounts.ts | 21 +++++++++++++++++---- src/entities/MastodonAccount.ts | 3 +++ src/views/mastodon/accounts.ts | 3 +++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/controllers/api/accounts.ts b/src/controllers/api/accounts.ts index f27b20e1..c4a2bc40 100644 --- a/src/controllers/api/accounts.ts +++ b/src/controllers/api/accounts.ts @@ -49,17 +49,26 @@ const verifyCredentialsController: AppController = async (c) => { const signer = c.get('signer')!; const pubkey = await signer.getPublicKey(); - const eventsDB = await Storages.db(); + const store = await Storages.db(); - const [author, [settingsStore]] = await Promise.all([ + const [author, [settingsStore], [captcha]] = await Promise.all([ getAuthor(pubkey, { signal: AbortSignal.timeout(5000) }), - eventsDB.query([{ - authors: [pubkey], + store.query([{ kinds: [30078], + authors: [pubkey], '#d': ['pub.ditto.pleroma_settings_store'], limit: 1, }]), + + store.query([{ + kinds: [1985], + authors: [Conf.pubkey], + '#L': ['pub.ditto.captcha'], + '#l': ['solved'], + '#p': [pubkey], + limit: 1, + }]), ]); const account = author @@ -74,6 +83,10 @@ const verifyCredentialsController: AppController = async (c) => { } } + if (captcha && account.source) { + account.source.ditto.captcha_solved = true; + } + return c.json(account); }; diff --git a/src/entities/MastodonAccount.ts b/src/entities/MastodonAccount.ts index d0514185..b713d70c 100644 --- a/src/entities/MastodonAccount.ts +++ b/src/entities/MastodonAccount.ts @@ -34,6 +34,9 @@ export interface MastodonAccount { nostr: { nip05?: string; }; + ditto: { + captcha_solved: boolean; + }; }; statuses_count: number; uri: string; diff --git a/src/views/mastodon/accounts.ts b/src/views/mastodon/accounts.ts index b3efdc82..1e10c4ff 100644 --- a/src/views/mastodon/accounts.ts +++ b/src/views/mastodon/accounts.ts @@ -87,6 +87,9 @@ async function renderAccount( nostr: { nip05, }, + ditto: { + captcha_solved: false, + }, } : undefined, statuses_count: event.author_stats?.notes_count ?? 0,