diff options
| author | Adam Soltys <[email protected]> | 2023-01-05 07:43:24 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-01-05 07:43:24 -0800 |
| commit | acd94921684759ac3d582ec87db7ceaeb2fefe45 (patch) | |
| tree | 314cca91818db2fd3ecbb58cc35f2963b8f506e6 /routes | |
| parent | 572bf373a9771dfa11ccaf027a45c0c1611a26a8 (diff) | |
| download | coinos-server-acd94921684759ac3d582ec87db7ceaeb2fefe45.tar.gz coinos-server-acd94921684759ac3d582ec87db7ceaeb2fefe45.zip | |
proxy to nostr api
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/events.js | 5 | ||||
| -rw-r--r-- | routes/users.js | 24 |
2 files changed, 21 insertions, 8 deletions
diff --git a/routes/events.js b/routes/events.js index fd2d97cd..f09cea23 100644 --- a/routes/events.js +++ b/routes/events.js @@ -1,7 +1,7 @@ import app from "$app"; import db from "$db"; import redis from "$lib/redis"; -import { coinos, q } from "$lib/nostr"; +import { coinos, pool, q } from "$lib/nostr"; import store from "$lib/store"; import { wait } from "$lib/utils"; @@ -48,6 +48,7 @@ app.get("/nostr/:pubkey", async (req, res) => { app.post("/nostr/send", async (req, res) => { let { event } = req.body; - coinos.send(["EVENT", event]); + pool.send(["EVENT", event]); + console.log("SENDING", JSON.stringify(event)) res.send(event); }); diff --git a/routes/users.js b/routes/users.js index ff188fad..ae64997b 100644 --- a/routes/users.js +++ b/routes/users.js @@ -24,6 +24,9 @@ import register from "$lib/register"; import { requirePin } from "$lib/utils"; import { coinos, q } from "$lib/nostr"; import got from "got"; +import { bech32 } from "bech32"; + +const { encode, decode, fromWords, toWords } = bech32; const pick = (O, ...K) => K.reduce((o, k) => ((o[k] = O[k]), o), {}); @@ -61,7 +64,11 @@ app.get("/me", auth, async (req, res) => { app.get("/users/:username", async (req, res) => { try { - const { username } = req.params; + let { username } = req.params; + + if (username.startsWith("npub")) { + username = Buffer.from(fromWords(decode(username).words)).toString("hex") + } let user = await db.User.findOne({ attributes: [ @@ -72,10 +79,15 @@ app.get("/users/:username", async (req, res) => { "currency", "pubkey" ], - where: Sequelize.where( - Sequelize.fn("lower", Sequelize.col("username")), - username.toLowerCase() - ) + where: { + [Sequelize.Op.or]: [ + Sequelize.where( + Sequelize.fn("lower", Sequelize.col("username")), + username.toLowerCase() + ), + { pubkey: username } + ] + } }); if (user) user = user.get({ plain: true }); @@ -695,7 +707,7 @@ app.get("/:pubkey/followers", async (req, res) => { let { pubkey } = req.params; let pubkeys = await got( - `https://coinos.io/nostr/followers?pubkey=${pubkey}` + `${config.nostr}/followers?pubkey=${pubkey}` ).json(); let followers = []; |
