mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-26 15:42:30 +01:00
UI fires up
This commit is contained in:
parent
cad896f909
commit
5048080ff6
4 changed files with 55 additions and 49 deletions
|
@ -1,16 +1,37 @@
|
||||||
from quart import Blueprint
|
import asyncio
|
||||||
|
|
||||||
|
from fastapi import APIRouter
|
||||||
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
|
||||||
from lnbits.db import Database
|
from lnbits.db import Database
|
||||||
|
from lnbits.helpers import template_renderer
|
||||||
|
from lnbits.tasks import catch_everything_and_restart
|
||||||
|
|
||||||
db = Database("ext_diagonalley")
|
db = Database("ext_diagonalley")
|
||||||
|
|
||||||
diagonalley_ext: Blueprint = Blueprint(
|
diagonalley_static_files = [
|
||||||
"diagonalley", __name__, static_folder="static", template_folder="templates"
|
{
|
||||||
|
"path": "/diagonalley/static",
|
||||||
|
"app": StaticFiles(directory="lnbits/extensions/diagonalley/static"),
|
||||||
|
"name": "diagonalley_static",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
diagonalley_ext: APIRouter = APIRouter(
|
||||||
|
prefix="/diagonalley", tags=["diagonalley"]
|
||||||
|
# "diagonalley", __name__, static_folder="static", template_folder="templates"
|
||||||
)
|
)
|
||||||
|
|
||||||
from .views_api import * # noqa
|
def diagonalley_renderer():
|
||||||
|
return template_renderer(["lnbits/extensions/diagonalley/templates"])
|
||||||
|
|
||||||
|
|
||||||
|
from .tasks import wait_for_paid_invoices
|
||||||
from .views import * # noqa
|
from .views import * # noqa
|
||||||
|
from .views_api import * # noqa
|
||||||
|
|
||||||
from .tasks import register_listeners
|
|
||||||
from lnbits.tasks import record_async
|
|
||||||
|
|
||||||
diagonalley_ext.record(record_async(register_listeners))
|
def diagonalley_start():
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
loop.create_task(catch_everything_and_restart(wait_for_paid_invoices))
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,6 @@ import asyncio
|
||||||
from lnbits.core.models import Payment
|
from lnbits.core.models import Payment
|
||||||
from lnbits.tasks import register_invoice_listener
|
from lnbits.tasks import register_invoice_listener
|
||||||
|
|
||||||
from .crud import get_ticket, set_ticket_paid
|
|
||||||
|
|
||||||
|
|
||||||
async def wait_for_paid_invoices():
|
async def wait_for_paid_invoices():
|
||||||
invoice_queue = asyncio.Queue()
|
invoice_queue = asyncio.Queue()
|
||||||
|
@ -16,6 +14,7 @@ async def wait_for_paid_invoices():
|
||||||
|
|
||||||
|
|
||||||
async def on_invoice_paid(payment: Payment) -> None:
|
async def on_invoice_paid(payment: Payment) -> None:
|
||||||
|
"""
|
||||||
if "lnticket" != payment.extra.get("tag"):
|
if "lnticket" != payment.extra.get("tag"):
|
||||||
# not a lnticket invoice
|
# not a lnticket invoice
|
||||||
return
|
return
|
||||||
|
@ -26,4 +25,5 @@ async def on_invoice_paid(payment: Payment) -> None:
|
||||||
return
|
return
|
||||||
|
|
||||||
await payment.set_pending(False)
|
await payment.set_pending(False)
|
||||||
await set_ticket_paid(payment.payment_hash)
|
await set_ticket_paid(payment.payment_hash)
|
||||||
|
"""
|
||||||
|
|
|
@ -1,44 +1,35 @@
|
||||||
|
|
||||||
from typing import List
|
|
||||||
|
|
||||||
from fastapi import Request, WebSocket, WebSocketDisconnect
|
|
||||||
from fastapi.params import Depends
|
|
||||||
from fastapi.templating import Jinja2Templates
|
|
||||||
from starlette.responses import HTMLResponse # type: ignore
|
|
||||||
|
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
import json
|
|
||||||
from lnbits.decorators import check_user_exists, validate_uuids
|
|
||||||
from lnbits.extensions.diagonalley import diagonalley_ext
|
|
||||||
|
|
||||||
from .crud import (
|
from fastapi import Request
|
||||||
create_diagonalley_product,
|
from fastapi.params import Depends
|
||||||
get_diagonalley_product,
|
from fastapi.templating import Jinja2Templates
|
||||||
get_diagonalley_products,
|
from starlette.exceptions import HTTPException
|
||||||
delete_diagonalley_product,
|
from starlette.responses import HTMLResponse
|
||||||
create_diagonalley_order,
|
|
||||||
get_diagonalley_order,
|
|
||||||
get_diagonalley_orders,
|
|
||||||
update_diagonalley_product,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
from lnbits.core.models import User
|
||||||
|
from lnbits.decorators import check_user_exists # type: ignore
|
||||||
|
from lnbits.extensions.diagonalley import diagonalley_ext, diagonalley_renderer
|
||||||
|
|
||||||
|
from .crud import get_diagonalley_products
|
||||||
|
|
||||||
|
templates = Jinja2Templates(directory="templates")
|
||||||
|
|
||||||
@diagonalley_ext.get("/", response_class=HTMLResponse)
|
@diagonalley_ext.get("/", response_class=HTMLResponse)
|
||||||
@validate_uuids(["usr"], required=True)
|
async def index(request: Request, user: User = Depends(check_user_exists)):
|
||||||
@check_user_exists(request: Request)
|
return diagonalley_renderer().TemplateResponse(
|
||||||
async def index():
|
"diagonalley/index.html", {"request": request, "user": user.dict()}
|
||||||
return await render_template("diagonalley/index.html", user=g.user)
|
)
|
||||||
|
|
||||||
|
@diagonalley_ext.get("/{stall_id}", response_class=HTMLResponse)
|
||||||
@diagonalley_ext.get("/<stall_id>", response_class=HTMLResponse)
|
|
||||||
async def display(request: Request, stall_id):
|
async def display(request: Request, stall_id):
|
||||||
product = await get_diagonalley_products(stall_id)
|
product = await get_diagonalley_products(stall_id)
|
||||||
|
|
||||||
if not product:
|
if not product:
|
||||||
abort(HTTPStatus.NOT_FOUND, "Stall does not exist.")
|
raise HTTPException(
|
||||||
|
status_code=HTTPStatus.NOT_FOUND, detail="Stall does not exist."
|
||||||
return await render_template(
|
)
|
||||||
|
return diagonalley_renderer().TemplateResponse(
|
||||||
"diagonalley/stall.html",
|
"diagonalley/stall.html",
|
||||||
stall=json.dumps(
|
{"stall": [product.dict() for product in await get_diagonalley_products(stall_id)]}
|
||||||
[product._asdict() for product in await get_diagonalley_products(stall_id)]
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -9,13 +9,7 @@ from starlette.exceptions import HTTPException
|
||||||
|
|
||||||
from lnbits.core.crud import get_user
|
from lnbits.core.crud import get_user
|
||||||
from lnbits.core.services import create_invoice
|
from lnbits.core.services import create_invoice
|
||||||
from lnbits.decorators import (
|
from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key
|
||||||
WalletTypeInfo,
|
|
||||||
api_check_wallet_key,
|
|
||||||
api_validate_post_request,
|
|
||||||
get_key_type,
|
|
||||||
require_admin_key,
|
|
||||||
)
|
|
||||||
|
|
||||||
from . import db, diagonalley_ext
|
from . import db, diagonalley_ext
|
||||||
from .crud import (
|
from .crud import (
|
||||||
|
|
Loading…
Add table
Reference in a new issue