aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/send
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/(app)/send')
-rw-r--r--src/routes/(app)/send/[...text]/+page.server.js21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/routes/(app)/send/[...text]/+page.server.js b/src/routes/(app)/send/[...text]/+page.server.js
index b909ab4d..4668cb4f 100644
--- a/src/routes/(app)/send/[...text]/+page.server.js
+++ b/src/routes/(app)/send/[...text]/+page.server.js
@@ -3,8 +3,10 @@ import bip21 from 'bip21';
import { get, post } from '$lib/utils';
import { invalid, redirect } from '@sveltejs/kit';
-let parse = async (t) => {
+let parse = async (t, r) => {
if (!t) return;
+ if (t.includes(':')) t = t.split(':')[1];
+
let user, uuid;
// lightning
@@ -32,11 +34,16 @@ let parse = async (t) => {
// ln address
if (t.includes('@') && t.includes('.')) {
let [name, domain] = t.split('@');
- try {
- let lnurl = await get(`/encode?domain=${domain}&name=${name}`);
- } catch (e) {}
+ if (domain === r.host) t = name;
+ else {
+ try {
+ t = await get(`/encode?domain=${domain}&name=${name}`);
+ } catch (e) {}
+ }
}
+ if (t.toLowerCase().startsWith('lnurl')) throw redirect(307, `/lnurl/${t}`);
+
// user
try {
user = await get(`/users/${t}`);
@@ -45,15 +52,15 @@ let parse = async (t) => {
if (user) throw redirect(303, `/send/user/${t}`);
};
-export async function load({ params }) {
+export async function load({ params, request }) {
let { text } = params;
- await parse(text);
+ await parse(text, request);
}
export const actions = {
default: async ({ request }) => {
const form = await request.formData();
- await parse(form.get('text'));
+ await parse(form.get('text'), request);
return invalid(403, { error: 'Does not compute, try again' });
}