aboutsummaryrefslogtreecommitdiffstats
path: root/routes/nostr.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-02-15 19:58:29 -0800
committerAdam Soltys <[email protected]>2023-02-15 19:58:48 -0800
commit12bf0c93d17d191a7bb58cfa72f9f94ee2c4d2af (patch)
tree76c84fe466969bfea014823a2d14edafc5c41d95 /routes/nostr.js
parent3de8baffdbc1f026936c91f6976b57770c66cd8a (diff)
downloadcoinos-server-12bf0c93d17d191a7bb58cfa72f9f94ee2c4d2af.tar.gz
coinos-server-12bf0c93d17d191a7bb58cfa72f9f94ee2c4d2af.zip
messages endpoint
Diffstat (limited to 'routes/nostr.js')
-rw-r--r--routes/nostr.js31
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]);