added webhook and messages

This commit is contained in:
Ben Arc
2021-04-19 09:32:41 +01:00
parent 5dad118991
commit 874e0773c0
3 changed files with 51 additions and 19 deletions

View File

@@ -25,7 +25,8 @@ async def lnurl_response(cp_id):
)
params = resp.dict()
params["commentAllowed"] = 300
if cp.show_message:
params["commentAllowed"] = 300
return jsonify(params)
@@ -54,14 +55,17 @@ async def lnurl_callback(cp_id):
).dict()
),
)
comment = request.args.get("comment")
if len(comment or "") > 300:
return jsonify(
LnurlErrorResponse(
reason=f"Got a comment with {len(comment)} characters, but can only accept 300"
).dict()
)
comment = ""
if request.args.get("comment"):
comment = request.args.get("comment")
if len(comment or "") > 300:
return jsonify(
LnurlErrorResponse(
reason=f"Got a comment with {len(comment)} characters, but can only accept 300"
).dict()
)
if len(comment) < 1:
comment = "none"
payment_hash, payment_request = await create_invoice(
wallet_id=cp.wallet,
@@ -71,7 +75,8 @@ async def lnurl_callback(cp_id):
"copilot.api_copilot_hooker",
copilot_id=cp_id,
amount=int(amount_received / 1000),
_external=True,
comment=comment,
_external=False,
),
description_hash=hashlib.sha256(
(
@@ -91,7 +96,8 @@ async def lnurl_callback(cp_id):
"copilot.api_copilot_hooker",
copilot_id=cp_id,
amount=int(amount_received / 1000),
_external=True,
comment=comment,
_external=False,
)
)
return jsonify(resp.dict())

View File

@@ -93,6 +93,15 @@
}
},
methods: {
showNotif: function (userMessage) {
this.$q.notify({
color: 'purple',
html: true,
message: '<h2 style="color: white;">' + userMessage + '</h2>',
position: 'left',
timeout: 5000
})
},
openURL: function (url) {
console.log(url)
return Quasar.utils.openURL(url)
@@ -230,6 +239,9 @@
if (res[1].substring(0, 3) == 'htt') {
document.getElementById('iframe_main').src = res[1]
}
if (res[2] != 'none') {
this.showNotif(res[2])
}
}
})

View File

@@ -1,5 +1,6 @@
from quart import g, abort, render_template, jsonify, websocket
from http import HTTPStatus
import httpx
from lnbits.decorators import check_user_exists, validate_uuids
@@ -65,10 +66,13 @@ async def panel(copilot_id):
return await render_template("copilot/panel.html", copilot=copilot)
@copilot_ext.route("/api/v1/copilot/hook/<copilot_id>/<amount>/", methods=["GET"])
@copilot_ext.route(
"/api/v1/copilot/hook/<copilot_id>/<amount>/<comment>", methods=["GET"]
)
async def api_copilot_hooker(copilot_id, amount):
data = ""
webhook = ""
copilot = await get_copilot(copilot_id)
if not copilot:
@@ -76,21 +80,31 @@ async def api_copilot_hooker(copilot_id, amount):
jsonify({"message": "Copilot link link does not exist."}),
HTTPStatus.NOT_FOUND,
)
print("got here")
if int(copilot.animation1threshold) and int(amount) > copilot.animation1threshold:
print("one")
data = copilot.animation1
if int(copilot.animation2threshold) and int(amount) > copilot.animation2threshold:
print("two")
webhook = copilot.animation1webhook
if (
int(copilot.animation2threshold)
and int(amount) > copilot.animation2threshold
):
data = copilot.animation2
webhook = copilot.animation1webhook
if (
int(copilot.animation3threshold)
and int(amount) > copilot.animation3threshold
):
print("three")
data = copilot.animation3
webhook = copilot.animation1webhook
if webhook:
async with httpx.AsyncClient() as client:
await client.post(
webhook,
json={
copilot,
},
timeout=40,
)
global connected_websockets
connected_websockets[copilot_id] = shortuuid.uuid() + "-" + data
connected_websockets[copilot_id] = shortuuid.uuid() + "-" + data + "-" + comment
print(connected_websockets)
return "", HTTPStatus.OK