aboutsummaryrefslogtreecommitdiffstats
path: root/routes/events.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-12-20 17:39:28 -0800
committerAdam Soltys <[email protected]>2022-12-20 17:39:28 -0800
commitaa662369cc7a293d0be5f4d419543a51ad40a7bc (patch)
tree8b53bd0ead2be327a00632014672e6b73e1dab10 /routes/events.js
parent9ebd4105fa412d16bfe58facc9ebb53847b3316a (diff)
downloadcoinos-server-aa662369cc7a293d0be5f4d419543a51ad40a7bc.tar.gz
coinos-server-aa662369cc7a293d0be5f4d419543a51ad40a7bc.zip
send user events
Diffstat (limited to 'routes/events.js')
-rw-r--r--routes/events.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/routes/events.js b/routes/events.js
new file mode 100644
index 00000000..460d09a5
--- /dev/null
+++ b/routes/events.js
@@ -0,0 +1,30 @@
+import app from "$app";
+import redis from "$lib/redis";
+import { pool } from "$lib/nostr";
+import store from "$lib/store";
+import { wait } from "$lib/utils";
+
+app.get("/:pubkey/events", async (req, res) => {
+ try {
+ let { pubkey } = req.params;
+ store.fetching[pubkey] = true;
+ store.timeouts[pubkey] = setTimeout(() => (store.fetching[pubkey] = false), 500);
+
+ pool.subscribe(pubkey, {
+ limit: 500,
+ kinds: [1],
+ authors: [pubkey]
+ });
+
+ let events = [];
+ await wait(() => !store.fetching[pubkey], 10, 10);
+ for (let id of await redis.sMembers(pubkey)) {
+ events.push(JSON.parse(await redis.get(`ev:${id}`)));
+ }
+
+ res.send(events);
+ } catch (e) {
+ console.log(e);
+ res.code(500).send("problem fetching user events");
+ }
+});