diff options
| author | Adam Soltys <[email protected]> | 2022-12-20 17:39:28 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-12-20 17:39:28 -0800 |
| commit | aa662369cc7a293d0be5f4d419543a51ad40a7bc (patch) | |
| tree | 8b53bd0ead2be327a00632014672e6b73e1dab10 /routes/events.js | |
| parent | 9ebd4105fa412d16bfe58facc9ebb53847b3316a (diff) | |
| download | coinos-server-aa662369cc7a293d0be5f4d419543a51ad40a7bc.tar.gz coinos-server-aa662369cc7a293d0be5f4d419543a51ad40a7bc.zip | |
send user events
Diffstat (limited to 'routes/events.js')
| -rw-r--r-- | routes/events.js | 30 |
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"); + } +}); |
