aboutsummaryrefslogtreecommitdiffstats
path: root/routes
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-10-08 21:22:45 -0700
committerAdam Soltys <[email protected]>2024-10-10 12:17:05 -0700
commitc0bfa4a8a45415e16ef335219c84632f4c04f97d (patch)
tree3500e42303c80314841a217a8e12f3c8f864e31d /routes
parent0a2734dfb5ae312f5283f93ab2e3f819ace3f94b (diff)
downloadcoinos-server-c0bfa4a8a45415e16ef335219c84632f4c04f97d.tar.gz
coinos-server-c0bfa4a8a45415e16ef335219c84632f4c04f97d.zip
use primal cache
Diffstat (limited to 'routes')
-rw-r--r--routes/nostr.ts39
1 files changed, 16 insertions, 23 deletions
diff --git a/routes/nostr.ts b/routes/nostr.ts
index 0fce9bdc..3f801677 100644
--- a/routes/nostr.ts
+++ b/routes/nostr.ts
@@ -32,20 +32,16 @@ export default {
query: { tagsonly },
} = req;
try {
- let { relays } = config;
- ({ write: relays } = await getRelays(pubkey));
- let ev = await pool.get([config.nostr], {
- kinds: [3],
- authors: [pubkey],
- });
+ let filter = { kinds: [3], authors: [pubkey] };
+ let ev = await pool.get([config.nostr], filter);
+
if (!ev) {
- pool
- .get(relays, {
- kinds: [3],
- authors: [pubkey],
- })
- .then(send);
+ let { relays } = config;
+ ({ write: relays } = await getRelays(pubkey));
+
+ filter = { kinds: [3], authors: [pubkey] };
+ pool.get(relays, filter).then(send);
}
let created_at;
@@ -64,20 +60,17 @@ export default {
profiles.push(...(await pool.querySync([config.nostr], filter)));
}
+ let filter: any = { cache: ["user_infos", { pubkeys }] };
+ let followers = JSON.parse(
+ (await pool.querySync([config.cache], filter)).find(
+ (e) => e.kind === 10000133,
+ ).content,
+ );
+
for (let p of profiles) {
let { content, pubkey } = p;
let user = JSON.parse(content);
-
- let cache = await g(`${pubkey}:followers`);
- let followers;
- if (cache && cache.t >= created_at) ({ followers } = cache);
- else {
- let filter = { "#p": [pubkey], kinds: [3] };
- followers = await pool.querySync([config.nostr], filter);
- s(`${pubkey}:followers`, { followers, t: created_at });
- }
-
- user.followers = followers.length;
+ user.followers = followers[pubkey];
user.pubkey = pubkey;
follows.push(user);
}