diff options
| author | Adam Soltys <[email protected]> | 2023-02-15 19:58:29 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-02-15 19:58:48 -0800 |
| commit | 12bf0c93d17d191a7bb58cfa72f9f94ee2c4d2af (patch) | |
| tree | 76c84fe466969bfea014823a2d14edafc5c41d95 /routes/nostr.js | |
| parent | 3de8baffdbc1f026936c91f6976b57770c66cd8a (diff) | |
| download | coinos-server-12bf0c93d17d191a7bb58cfa72f9f94ee2c4d2af.tar.gz coinos-server-12bf0c93d17d191a7bb58cfa72f9f94ee2c4d2af.zip | |
messages endpoint
Diffstat (limited to 'routes/nostr.js')
| -rw-r--r-- | routes/nostr.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/routes/nostr.js b/routes/nostr.js index 53ad4c29..ad9f55aa 100644 --- a/routes/nostr.js +++ b/routes/nostr.js @@ -49,6 +49,37 @@ export default { res.send(events.map(e => ({ ...e, user }))); }, + async messages({ params: { pubkey, since = 0 } }, res) { + let params = { + kinds: [4], + authors: [pubkey] + }; + + let opts = { since }; + + await q(`${pubkey}:messages`, params, opts).catch(nada); + + params = { + kinds: [4], + "#p": [pubkey] + }; + + await q(`${pubkey}:messages`, params, opts).catch(nada); + + let messages = await db.sMembers(`${pubkey}:messages`); + messages = await Promise.all( + messages.map(async id => { + let m = await g(`ev:${id}`); + let k = m.pubkey === pubkey ? m.tags[0].p : m.pubkey; + let uid = await g(`user:${k}`); + m.user = await g(`user:${uid}`); + return m; + }) + ); + + res.send(messages); + }, + async broadcast(req, res) { let { event } = req.body; pool.send(["EVENT", event]); |
