aboutsummaryrefslogtreecommitdiffstats
path: root/routes/users.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-01-05 07:43:24 -0800
committerAdam Soltys <[email protected]>2023-01-05 07:43:24 -0800
commitacd94921684759ac3d582ec87db7ceaeb2fefe45 (patch)
tree314cca91818db2fd3ecbb58cc35f2963b8f506e6 /routes/users.js
parent572bf373a9771dfa11ccaf027a45c0c1611a26a8 (diff)
downloadcoinos-server-acd94921684759ac3d582ec87db7ceaeb2fefe45.tar.gz
coinos-server-acd94921684759ac3d582ec87db7ceaeb2fefe45.zip
proxy to nostr api
Diffstat (limited to 'routes/users.js')
-rw-r--r--routes/users.js24
1 files changed, 18 insertions, 6 deletions
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 = [];