diff --git a/lnbits/extensions/livestream/lnurl.py b/lnbits/extensions/livestream/lnurl.py index d1c59fb16..1e021f85b 100644 --- a/lnbits/extensions/livestream/lnurl.py +++ b/lnbits/extensions/livestream/lnurl.py @@ -10,7 +10,7 @@ from .crud import get_livestream, get_livestream_by_track, get_track @livestream_ext.route("/lnurl/", methods=["GET"]) -async def lnurl_response(ls_id): +async def lnurl_livestream(ls_id): ls = await get_livestream(ls_id) if not ls: return jsonify({"status": "ERROR", "reason": "Livestream not found."}) @@ -34,6 +34,27 @@ async def lnurl_response(ls_id): return jsonify(params) +@livestream_ext.route("/lnurl/t/", methods=["GET"]) +async def lnurl_track(track_id): + track = await get_track(track_id) + if not track: + return jsonify({"status": "ERROR", "reason": "Track not found."}) + + resp = LnurlPayResponse( + callback=url_for( + "livestream.lnurl_callback", track_id=track.id, _external=True + ), + min_sendable=track.min_sendable, + max_sendable=track.max_sendable, + metadata=await track.lnurlpay_metadata(), + ) + + params = resp.dict() + params["commentAllowed"] = 300 + + return jsonify(params) + + @livestream_ext.route("/lnurl/cb/", methods=["GET"]) async def lnurl_callback(track_id): track = await get_track(track_id) diff --git a/lnbits/extensions/livestream/models.py b/lnbits/extensions/livestream/models.py index 3385970b6..bfe829733 100644 --- a/lnbits/extensions/livestream/models.py +++ b/lnbits/extensions/livestream/models.py @@ -14,7 +14,7 @@ class Livestream(NamedTuple): @property def lnurl(self) -> Lnurl: - url = url_for("livestream.lnurl_response", ls_id=self.id, _external=True) + url = url_for("livestream.lnurl_livestream", ls_id=self.id, _external=True) return lnurl_encode(url) @@ -33,6 +33,11 @@ class Track(NamedTuple): def max_sendable(self) -> int: return max(50_000_000, self.price_msat * 5) + @property + def lnurl(self) -> Lnurl: + url = url_for("livestream.lnurl_track", track_id=self.id, _external=True) + return lnurl_encode(url) + async def fullname(self) -> str: from .crud import get_producer diff --git a/lnbits/extensions/livestream/templates/livestream/index.html b/lnbits/extensions/livestream/templates/livestream/index.html index e73293d26..f242744aa 100644 --- a/lnbits/extensions/livestream/templates/livestream/index.html +++ b/lnbits/extensions/livestream/templates/livestream/index.html @@ -229,6 +229,26 @@ + +

Standalone QR Code for this track

+ + + + + + + Copy LNURL-pay code +