From 17f059a8deba75af396f5f7a014f65e2bcafa359 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:17:19 +0000
Subject: [PATCH 01/32] Added endpoint for easy LNURL fetching
---
lnbits/extensions/withdraw/views_api.py | 64 ++++++++++++++++++++++++-
1 file changed, 63 insertions(+), 1 deletion(-)
diff --git a/lnbits/extensions/withdraw/views_api.py b/lnbits/extensions/withdraw/views_api.py
index 82d171ffb..9b6834cc3 100644
--- a/lnbits/extensions/withdraw/views_api.py
+++ b/lnbits/extensions/withdraw/views_api.py
@@ -6,7 +6,8 @@ from flask import jsonify, request, url_for
from lnurl import LnurlWithdrawResponse, encode as lnurl_encode
from datetime import datetime
-from lnbits.db import open_ext_db
+
+from lnbits.db import open_ext_db, open_db
from lnbits.extensions.withdraw import withdraw_ext
@@ -117,3 +118,64 @@ def api_lnurlwithdraw(rand):
user_fau = withdraw_ext_db.fetchall("SELECT * FROM withdraws WHERE withdrawals = ?", (k1,))
return jsonify({"status": "OK"}), 200
+
+@withdraw_ext.route("/api/v1/lnurlmaker", methods=["GET","POST"])
+def api_lnurlmaker():
+
+ if request.headers["Content-Type"] != "application/json":
+ return jsonify({"ERROR": "MUST BE JSON"}), 400
+
+ with open_db() as db:
+ wallet = db.fetchall(
+ "SELECT * FROM wallets WHERE adminkey = ?",
+ (request.headers["Grpc-Metadata-macaroon"],),
+ )
+ if not wallet:
+ return jsonify({"ERROR": "NO KEY"}), 200
+
+ balance = db.fetchone("SELECT balance/1000 FROM balances WHERE wallet = ?", (wallet[0][0],))[0]
+ print(balance)
+
+ postedjson = request.json
+ print(postedjson["amount"])
+
+ if balance < int(postedjson["amount"]):
+ return jsonify({"ERROR": "NOT ENOUGH FUNDS"}), 200
+
+ uni = uuid.uuid4().hex
+ rand = uuid.uuid4().hex[0:5]
+
+ with open_ext_db("withdraw") as withdraw_ext_db:
+ withdraw_ext_db.execute(
+ """
+ INSERT OR IGNORE INTO withdraws
+ (usr, wal, walnme, adm, uni, tit, maxamt, minamt, spent, inc, tme, uniq, withdrawals, tmestmp, rand)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+ """,
+ (
+ wallet[0][2],
+ wallet[0][0],
+ wallet[0][1],
+ wallet[0][3],
+ uni,
+ postedjson["memo"],
+ postedjson["amount"],
+ postedjson["amount"],
+ 0,
+ 1,
+ 1,
+ 0,
+ 0,
+ 1,
+ rand,
+ ),
+ )
+
+ user_fau = withdraw_ext_db.fetchone("SELECT * FROM withdraws WHERE uni = ?", (uni,))
+
+ if not user_fau:
+ return jsonify({"ERROR": "WITHDRAW NOT MADE"}), 401
+
+ url = url_for("withdraw.api_lnurlfetch", _external=True, urlstr=request.host, parstr=uni, rand=rand)
+
+ return jsonify({"status": "TRUE", "lnurl": lnurl_encode(url.replace("http://", "https://"))}), 200
From 1b11f915173c3e8b94e365f70c6eb84b1848500a Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:20:10 +0000
Subject: [PATCH 02/32] Update README.md
---
lnbits/extensions/withdraw/README.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lnbits/extensions/withdraw/README.md b/lnbits/extensions/withdraw/README.md
index f86abafa9..9a5da6f87 100644
--- a/lnbits/extensions/withdraw/README.md
+++ b/lnbits/extensions/withdraw/README.md
@@ -6,3 +6,9 @@ https://github.com/btcontract/lnurl-rfc/blob/master/spec.md#3-lnurl-withdraw
With this extension to can create/edit LNURL withdraws, set a min/max amount, set time (useful for subscription services)

+
+
+## API endpoint
+Easily fetch one-off LNURL
+
+ curl -H "Content-type: application/json" -X POST https://YOUR-LNBITS/withdraw/api/v1/lnurlmaker -d '{"amount":"100","memo":"ATM"}' -H "Grpc-Metadata-macaroon: YOUR-WALLET-ADMIN-KEY"
From 3362b0cdbe703ec2a5db3c23f7cd233f4dc5f209 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:20:41 +0000
Subject: [PATCH 03/32] Update README.md
---
lnbits/extensions/withdraw/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lnbits/extensions/withdraw/README.md b/lnbits/extensions/withdraw/README.md
index 9a5da6f87..093763a23 100644
--- a/lnbits/extensions/withdraw/README.md
+++ b/lnbits/extensions/withdraw/README.md
@@ -8,7 +8,7 @@ With this extension to can create/edit LNURL withdraws, set a min/max amount, se

-## API endpoint
+## API endpoint - /withdraw/api/v1/lnurlmaker
Easily fetch one-off LNURL
curl -H "Content-type: application/json" -X POST https://YOUR-LNBITS/withdraw/api/v1/lnurlmaker -d '{"amount":"100","memo":"ATM"}' -H "Grpc-Metadata-macaroon: YOUR-WALLET-ADMIN-KEY"
From 87d66e99d071cda7cfa72ce9b89a664c0186e58f Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:20:58 +0000
Subject: [PATCH 04/32] Update README.md
---
lnbits/extensions/withdraw/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lnbits/extensions/withdraw/README.md b/lnbits/extensions/withdraw/README.md
index 093763a23..0a484d282 100644
--- a/lnbits/extensions/withdraw/README.md
+++ b/lnbits/extensions/withdraw/README.md
@@ -9,6 +9,6 @@ With this extension to can create/edit LNURL withdraws, set a min/max amount, se
## API endpoint - /withdraw/api/v1/lnurlmaker
-Easily fetch one-off LNURL
+Easily fetch one-off LNURLw
curl -H "Content-type: application/json" -X POST https://YOUR-LNBITS/withdraw/api/v1/lnurlmaker -d '{"amount":"100","memo":"ATM"}' -H "Grpc-Metadata-macaroon: YOUR-WALLET-ADMIN-KEY"
From 47bb06feb76a3217cae1e7558a438d0db36c7246 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:52:28 +0000
Subject: [PATCH 05/32] Rename config.json to example.config.json
---
lnbits/extensions/events/{config.json => example.config.json} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename lnbits/extensions/events/{config.json => example.config.json} (100%)
diff --git a/lnbits/extensions/events/config.json b/lnbits/extensions/events/example.config.json
similarity index 100%
rename from lnbits/extensions/events/config.json
rename to lnbits/extensions/events/example.config.json
From 436bcfbd11a6f7409b9aa39cac04a2982fb55f58 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:52:59 +0000
Subject: [PATCH 06/32] Rename example.config.json to config.json
---
lnbits/extensions/events/{example.config.json => config.json} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename lnbits/extensions/events/{example.config.json => config.json} (100%)
diff --git a/lnbits/extensions/events/example.config.json b/lnbits/extensions/events/config.json
similarity index 100%
rename from lnbits/extensions/events/example.config.json
rename to lnbits/extensions/events/config.json
From 7e88c504f62726afc146289ec5b0fb6d72d00521 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:54:46 +0000
Subject: [PATCH 07/32] Create README.md
---
lnbits/extensions/example/README.md | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 lnbits/extensions/example/README.md
diff --git a/lnbits/extensions/example/README.md b/lnbits/extensions/example/README.md
new file mode 100644
index 000000000..fee9ab49a
--- /dev/null
+++ b/lnbits/extensions/example/README.md
@@ -0,0 +1,9 @@
+
Example Extension
+*tagline*
+This is an example extension to help you organise and build you own.
+
+Try to include an image
+
+
+If your extension has API endpoints, include useful ones here
+curl -H "Content-type: application/json" -X POST https://YOUR-LNBITS/YOUR-EXTENSION/api/v1/EXAMPLE -d '{"amount":"100","memo":"example"}' -H "Grpc-Metadata-macaroon: YOUR_WALLET-ADMIN/INVOICE-KEY"
From c111902e7f6aae8b0cfb651a91b02d1835b59aa6 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:57:04 +0000
Subject: [PATCH 08/32] Create example.config.json
---
lnbits/extensions/example/example.config.json | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 lnbits/extensions/example/example.config.json
diff --git a/lnbits/extensions/example/example.config.json b/lnbits/extensions/example/example.config.json
new file mode 100644
index 000000000..fc2673c5b
--- /dev/null
+++ b/lnbits/extensions/example/example.config.json
@@ -0,0 +1,5 @@
+{
+ "name": "SHORT-NAME-FOR-EXTENSIONS-PAGE",
+ "short_description": "BLah blah blah.",
+ "ion_icon": "calendar"
+}
From 44c6dc0c01d54019362981e9742003c057de006a Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 22:58:58 +0000
Subject: [PATCH 09/32] Create __init__.py
---
lnbits/extensions/example/__init__.py | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 lnbits/extensions/example/__init__.py
diff --git a/lnbits/extensions/example/__init__.py b/lnbits/extensions/example/__init__.py
new file mode 100644
index 000000000..1950e6c08
--- /dev/null
+++ b/lnbits/extensions/example/__init__.py
@@ -0,0 +1,8 @@
+from flask import Blueprint
+
+
+example_ext = Blueprint("example", __name__, static_folder="static", template_folder="templates")
+
+
+from .views_api import * # noqa
+from .views import * # noqa
From b4cad9e6cdf99945b6f4e69615b3849faf63e4ba Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:02:57 +0000
Subject: [PATCH 10/32] Create schema.sql
---
lnbits/extensions/example/schema.sql | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 lnbits/extensions/example/schema.sql
diff --git a/lnbits/extensions/example/schema.sql b/lnbits/extensions/example/schema.sql
new file mode 100644
index 000000000..4a65bd4b5
--- /dev/null
+++ b/lnbits/extensions/example/schema.sql
@@ -0,0 +1,7 @@
+/* create your extensions table and the variables needed here */
+CREATE TABLE IF NOT EXISTS events (
+ key INTEGER PRIMARY KEY AUTOINCREMENT,
+ usr TEXT,
+ wal TEXT,
+ walnme TEXT
+);
From e64c8bcf533d75d0a2b1a7e4f00bfd6b437363d8 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:12:33 +0000
Subject: [PATCH 11/32] Create index.html
---
.../example/templates/example/index.html | 98 +++++++++++++++++++
1 file changed, 98 insertions(+)
create mode 100644 lnbits/extensions/example/templates/example/index.html
diff --git a/lnbits/extensions/example/templates/example/index.html b/lnbits/extensions/example/templates/example/index.html
new file mode 100644
index 000000000..57f301b6b
--- /dev/null
+++ b/lnbits/extensions/example/templates/example/index.html
@@ -0,0 +1,98 @@
+
+
+{% extends "base.html" %} {% block messages %}
+
+
+
+ !
+
+
+{% endblock %} {% block menuitems %}
+
+
+ Wallets
+
+
+
+
+
+
+
+ Extensions
+
+
+
+
+
+{% endblock %} {% block body %}
+
+
+
+
+
+
+
+
+
+
+
+
+
*Some content in here
+
+
+
+
+
+
+
+{% endblock %}
From 53d375efd513e9a9c5d6bb1fbfabdecab94d2f5f Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:14:53 +0000
Subject: [PATCH 12/32] Create views.py
---
lnbits/extensions/example/views.py | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 lnbits/extensions/example/views.py
diff --git a/lnbits/extensions/example/views.py b/lnbits/extensions/example/views.py
new file mode 100644
index 000000000..9e3daf06b
--- /dev/null
+++ b/lnbits/extensions/example/views.py
@@ -0,0 +1,13 @@
+#add your dependencies here
+from flask import jsonify, render_template, request, redirect, url_for
+from lnbits.db import open_db, open_ext_db
+from lnbits.extensions.events import events_ext
+
+#add your endpoints here
+
+@example_ext.route("/")
+def index():
+ """Try to add descriptions for others."""
+ return render_template(
+ "example/index.html"
+ )
From 02261b1ba472088ac596c60959ced53acbce991f Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:15:50 +0000
Subject: [PATCH 13/32] Update views.py
---
lnbits/extensions/example/views.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lnbits/extensions/example/views.py b/lnbits/extensions/example/views.py
index 9e3daf06b..99ad4710e 100644
--- a/lnbits/extensions/example/views.py
+++ b/lnbits/extensions/example/views.py
@@ -1,7 +1,7 @@
#add your dependencies here
from flask import jsonify, render_template, request, redirect, url_for
from lnbits.db import open_db, open_ext_db
-from lnbits.extensions.events import events_ext
+from lnbits.extensions.example import example_ext
#add your endpoints here
From 87cc8a484fa07ae3a04e5c7d60cd22d9dd9c2c07 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:16:06 +0000
Subject: [PATCH 14/32] Update views.py
---
lnbits/extensions/example/views.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/lnbits/extensions/example/views.py b/lnbits/extensions/example/views.py
index 99ad4710e..ac6531703 100644
--- a/lnbits/extensions/example/views.py
+++ b/lnbits/extensions/example/views.py
@@ -1,4 +1,5 @@
#add your dependencies here
+
from flask import jsonify, render_template, request, redirect, url_for
from lnbits.db import open_db, open_ext_db
from lnbits.extensions.example import example_ext
From 3fb570c9fa875c3698fe7a5a9d13c20782064aaa Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:21:01 +0000
Subject: [PATCH 15/32] Create views_api.py
---
lnbits/extensions/example/views_api.py | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 lnbits/extensions/example/views_api.py
diff --git a/lnbits/extensions/example/views_api.py b/lnbits/extensions/example/views_api.py
new file mode 100644
index 000000000..7046d9f45
--- /dev/null
+++ b/lnbits/extensions/example/views_api.py
@@ -0,0 +1,17 @@
+#views_api.py is for you API endpoints that could be hit by another service
+
+#add your dependencies here
+
+from flask import jsonify, render_template, request, redirect, url_for
+from lnbits.db import open_db, open_ext_db
+from lnbits.extensions.example import example_ext
+
+#add your endpoints here
+
+@example_ext.route("/api/v1/example", methods=["GET","POST"])
+def api_example():
+ """Try to add descriptions for others."""
+ #YOUR-CODE
+
+ return jsonify({"status": "TRUE"), 200
+
From b6ec5edcab33a18bcde26442337be1bca4de1017 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:21:44 +0000
Subject: [PATCH 16/32] Update schema.sql
---
lnbits/extensions/example/schema.sql | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lnbits/extensions/example/schema.sql b/lnbits/extensions/example/schema.sql
index 4a65bd4b5..3e02c060b 100644
--- a/lnbits/extensions/example/schema.sql
+++ b/lnbits/extensions/example/schema.sql
@@ -1,5 +1,5 @@
/* create your extensions table and the variables needed here */
-CREATE TABLE IF NOT EXISTS events (
+CREATE TABLE IF NOT EXISTS example (
key INTEGER PRIMARY KEY AUTOINCREMENT,
usr TEXT,
wal TEXT,
From 4044448fd08a6dde56914ce894882a792a7a2f83 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:22:46 +0000
Subject: [PATCH 17/32] Rename config.json to example.config.json
---
lnbits/extensions/events/{config.json => example.config.json} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename lnbits/extensions/events/{config.json => example.config.json} (100%)
diff --git a/lnbits/extensions/events/config.json b/lnbits/extensions/events/example.config.json
similarity index 100%
rename from lnbits/extensions/events/config.json
rename to lnbits/extensions/events/example.config.json
From e9f21bb2cf0e0e8d99667f1f07599c78d3954a93 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:41:00 +0000
Subject: [PATCH 18/32] Update index.html
---
lnbits/extensions/example/templates/example/index.html | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lnbits/extensions/example/templates/example/index.html b/lnbits/extensions/example/templates/example/index.html
index 57f301b6b..de11a494c 100644
--- a/lnbits/extensions/example/templates/example/index.html
+++ b/lnbits/extensions/example/templates/example/index.html
@@ -69,11 +69,13 @@
+
+
-
+
From c410e7d79e6b2527c7a67a969dc0676cd1741af1 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:42:04 +0000
Subject: [PATCH 19/32] Update views_api.py
---
lnbits/extensions/example/views_api.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lnbits/extensions/example/views_api.py b/lnbits/extensions/example/views_api.py
index 7046d9f45..2eb091c2b 100644
--- a/lnbits/extensions/example/views_api.py
+++ b/lnbits/extensions/example/views_api.py
@@ -2,6 +2,8 @@
#add your dependencies here
+import json
+import requests
from flask import jsonify, render_template, request, redirect, url_for
from lnbits.db import open_db, open_ext_db
from lnbits.extensions.example import example_ext
@@ -13,5 +15,4 @@ def api_example():
"""Try to add descriptions for others."""
#YOUR-CODE
- return jsonify({"status": "TRUE"), 200
-
+ return jsonify({"status": "TRUE"}), 200
From 7acd549b05b8d8f8d8cb11ab52d94ccb9f547f21 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:49:17 +0000
Subject: [PATCH 20/32] Update example.config.json
---
lnbits/extensions/events/example.config.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lnbits/extensions/events/example.config.json b/lnbits/extensions/events/example.config.json
index 9243def4c..600cddee0 100644
--- a/lnbits/extensions/events/example.config.json
+++ b/lnbits/extensions/events/example.config.json
@@ -1,5 +1,5 @@
{
"name": "LNEVENTS",
"short_description": "Make LNURL withdraw links.",
- "ion_icon": "calendar-outline"
+ "ion_icon": "calendar"
}
From 06bd993b09e034015287acbcea1e4f3a7cac1b7f Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:50:03 +0000
Subject: [PATCH 21/32] Update __init__.py
From 4254c45d2009259e022e44c3ae9b9400d76998c6 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Wed, 19 Feb 2020 23:51:26 +0000
Subject: [PATCH 22/32] Update views.py
---
lnbits/extensions/events/views.py | 93 ++++++++++++++++++++++++++++++-
1 file changed, 92 insertions(+), 1 deletion(-)
diff --git a/lnbits/extensions/events/views.py b/lnbits/extensions/events/views.py
index bf5e55ce6..6ba5764c4 100644
--- a/lnbits/extensions/events/views.py
+++ b/lnbits/extensions/events/views.py
@@ -10,8 +10,99 @@ from lnbits.extensions.events import events_ext
@events_ext.route("/")
def index():
"""Main events link page."""
+ usr = request.args.get("usr")
+
+ if usr:
+ if not len(usr) > 20:
+ return redirect(url_for("home"))
+
+ # Get all the data
+ with open_db() as db:
+ user_wallets = db.fetchall("SELECT * FROM wallets WHERE user = ?", (usr,))
+ user_ext = db.fetchall("SELECT * FROM extensions WHERE user = ?", (usr,))
+ user_ext = [v[0] for v in user_ext]
+
+ with open_ext_db("events") as events_ext_db:
+ user_ev = events_ext_db.fetchall("SELECT * FROM events WHERE usr = ?", (usr,))
+
+ # If del is selected by user from events page, the event link is to be deleted
+ evdel = request.args.get("del")
+ if evdel:
+ events_ext_db.execute("DELETE FROM events WHERE uni = ?", (evdel,))
+ user_ev = events_ext_db.fetchall("SELECT * FROM events WHERE usr = ?", (usr,))
+ print(user_ext)
return render_template(
- "events/index.html"
+ "events/index.html", user_wallets=user_wallets, user=usr, user_ext=user_ext, user_ev=user_ev
)
+@events_ext.route("/create", methods=["GET", "POST"])
+def create():
+ """."""
+
+ data = request.json
+ tit = data["tit"]
+ wal = data["wal"]
+ cldate = data["cldate"]
+ nooftickets = data["nooftickets"]
+ prtick = data["prtick"]
+ usr = data["usr"]
+ wall = wal.split("-")
+
+ # Form validation
+ if (
+ int(amt) < 0
+ or not tit.replace(" ", "").isalnum()
+ or wal == ""
+ or int(nooftickets) < 0
+ or int(prtick) < 0
+ ):
+ return jsonify({"ERROR": "FORM ERROR"}), 401
+
+ # If id that means its a link being edited, delete the record first
+ if "id" in data:
+ unid = data["id"].split("-")
+ uni = unid[1]
+ with open_ext_db("events") as events_ext_db:
+ events_ext_db.execute("DELETE FROM events WHERE uni = ?", (unid[1],))
+ else:
+ uni = uuid.uuid4().hex
+
+ with open_db() as dbb:
+ user_wallets = dbb.fetchall("SELECT * FROM wallets WHERE user = ? AND id = ?", (usr, wall[1],))
+ if not user_wallets:
+ return jsonify({"ERROR": "NO WALLET USER"}), 401
+
+ with open_db() as db:
+ user_ext = db.fetchall("SELECT * FROM extensions WHERE user = ?", (usr,))
+ user_ext = [v[0] for v in user_ext]
+
+ # Add to DB
+ with open_ext_db("events") as events_ext_db:
+ events_ext_db.execute(
+ """
+ INSERT OR IGNORE INTO events
+ (usr, wal, walnme, walinvkey, uni, tit, cldate, nooftickets, prtick)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ """,
+ (
+ usr,
+ wall[1],
+ user_wallets[0][1],
+ user_wallets[0][4],
+ uni,
+ tit,
+ cldate,
+ nooftickets,
+ prtick,
+ ),
+ )
+
+ user_ev = events_ext_db.fetchall("SELECT * FROM events WHERE usr = ?", (usr,))
+
+ if not user_ev:
+ return jsonify({"ERROR": "NO WALLET USER"}), 401
+
+ return render_template(
+ "events/index.html", user_wallets=user_wallets, user=usr, user_ext=user_ext, user_ev=user_ev
+ )
From 154cbb0d482fcd71fc3a577d756ae19062c24185 Mon Sep 17 00:00:00 2001
From: Arc <33088785+arcbtc@users.noreply.github.com>
Date: Thu, 20 Feb 2020 00:00:23 +0000
Subject: [PATCH 23/32] Update index.html
---
.../events/templates/events/index.html | 95 +++++++++----------
1 file changed, 44 insertions(+), 51 deletions(-)
diff --git a/lnbits/extensions/events/templates/events/index.html b/lnbits/extensions/events/templates/events/index.html
index 5edbc05f2..6f724f9e0 100644
--- a/lnbits/extensions/events/templates/events/index.html
+++ b/lnbits/extensions/events/templates/events/index.html
@@ -80,7 +80,7 @@
-
-
-
+
+
+
@@ -122,7 +122,7 @@
@@ -136,7 +136,7 @@
@@ -171,33 +171,33 @@
window.user = {{ user | megajson | safe }}
window.user_wallets = {{ user_wallets | megajson | safe }}
window.user_ext = {{ user_ext | megajson | safe }}
- window.user_wav = {{ user_fau | megajson | safe }}
+ window.user_ev = {{ user_ev | megajson | safe }}
- const user_wav = window.user_wav
- console.log(user_wav)
+ const user_ev = window.user_ev
+ console.log(user_ev)
-function drawChart(user_wav) {
+function drawChart(user_ev) {
var transactionsHTML = ''
- for (var i = 0; i < user_wav.length; i++) {
- var wv = user_wav[i]
+ for (var i = 0; i < user_ev.length; i++) {
+ var ev = user_ev[i]
transactionsHTML =
"
" +
- wv.tit +
+ ev.tit +
' | ' +
- wv.nosold +
+ ev.nosold +
' | ' +
- wv.noavail +
+ ev.noavail +
' | ' +
- wv.prpertick +
+ ev.prpertick +
' | ' +
- "" + wv.uni.substring(0, 4) + "..." +
+ "" + ev.uni.substring(0, 4) + "..." +
' | ' +
"" +
' | ' +
- "" + "" + "" +
+ "" + "" + "" +
' |
' +
transactionsHTML
document.getElementById('ticketwaves').innerHTML = transactionsHTML
@@ -205,10 +205,11 @@ function drawChart(user_wav) {
}
}
-function postwav(){
+function postev(){
wal = document.getElementById('wal').value
tit = document.getElementById('tit').value
+ cldate = document.getElementById('cldate').value
nooftickets = document.getElementById('nooftickets').value
prtick = document.getElementById('prtick').value
@@ -220,6 +221,10 @@ function postwav(){
document.getElementById("error").innerHTML = "No wallet selected"
return amt
}
+ if (cldate == "") {
+ document.getElementById("error").innerHTML = "No date selected"
+ return amt
+ }
if (isNaN(notickets) || notickets < 1) {
document.getElementById("error").innerHTML = "Must be more than 1"
@@ -231,25 +236,25 @@ function postwav(){
}
postAjax(
- "{{ url_for('wave.create') }}",
- JSON.stringify({"tit": tit, "nooftickets": nooftickets, "nooftickets": nooftickets, "prtick": prtick}),
+ "{{ url_for('events.create') }}",
+ JSON.stringify({"tit": tit, "wal": wal, "nooftickets": nooftickets,"cldate": cldate, "prtick": prtick}),
"filla",
- function(data) { location.replace("{{ url_for('wav.index') }}?usr=" + user)
+ function(data) { location.replace("{{ url_for('events.index') }}?usr=" + user)
})
}
-function editlink(wavnum){
+function editlink(evnum){
-wavdetails = user_wav[wavnum]
+evdetails = user_ev[evnum]
-console.log(wavdetails)
+console.log(evdetails)
wallpick = ""
checkbox = ""
-if (wavdetails.uniq == 1){
+if (evdetails.uniq == 1){
checkbox = "checked"}
document.getElementById('editlink').innerHTML = "
"+
@@ -257,7 +262,7 @@ document.getElementById('editlink').innerHTML = "