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.helpers import template_renderer
|
||||
from lnbits.tasks import catch_everything_and_restart
|
||||
|
||||
db = Database("ext_diagonalley")
|
||||
|
||||
diagonalley_ext: Blueprint = Blueprint(
|
||||
"diagonalley", __name__, static_folder="static", template_folder="templates"
|
||||
diagonalley_static_files = [
|
||||
{
|
||||
"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_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.tasks import register_invoice_listener
|
||||
|
||||
from .crud import get_ticket, set_ticket_paid
|
||||
|
||||
|
||||
async def wait_for_paid_invoices():
|
||||
invoice_queue = asyncio.Queue()
|
||||
|
@ -16,6 +14,7 @@ async def wait_for_paid_invoices():
|
|||
|
||||
|
||||
async def on_invoice_paid(payment: Payment) -> None:
|
||||
"""
|
||||
if "lnticket" != payment.extra.get("tag"):
|
||||
# not a lnticket invoice
|
||||
return
|
||||
|
@ -27,3 +26,4 @@ async def on_invoice_paid(payment: Payment) -> None:
|
|||
|
||||
await payment.set_pending(False)
|
||||
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
|
||||
import json
|
||||
from lnbits.decorators import check_user_exists, validate_uuids
|
||||
from lnbits.extensions.diagonalley import diagonalley_ext
|
||||
|
||||
from .crud import (
|
||||
create_diagonalley_product,
|
||||
get_diagonalley_product,
|
||||
get_diagonalley_products,
|
||||
delete_diagonalley_product,
|
||||
create_diagonalley_order,
|
||||
get_diagonalley_order,
|
||||
get_diagonalley_orders,
|
||||
update_diagonalley_product,
|
||||
)
|
||||
from fastapi import Request
|
||||
from fastapi.params import Depends
|
||||
from fastapi.templating import Jinja2Templates
|
||||
from starlette.exceptions import HTTPException
|
||||
from starlette.responses import HTMLResponse
|
||||
|
||||
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)
|
||||
@validate_uuids(["usr"], required=True)
|
||||
@check_user_exists(request: Request)
|
||||
async def index():
|
||||
return await render_template("diagonalley/index.html", user=g.user)
|
||||
async def index(request: Request, user: User = Depends(check_user_exists)):
|
||||
return diagonalley_renderer().TemplateResponse(
|
||||
"diagonalley/index.html", {"request": request, "user": user.dict()}
|
||||
)
|
||||
|
||||
|
||||
@diagonalley_ext.get("/<stall_id>", response_class=HTMLResponse)
|
||||
@diagonalley_ext.get("/{stall_id}", response_class=HTMLResponse)
|
||||
async def display(request: Request, stall_id):
|
||||
product = await get_diagonalley_products(stall_id)
|
||||
if not product:
|
||||
abort(HTTPStatus.NOT_FOUND, "Stall does not exist.")
|
||||
|
||||
return await render_template(
|
||||
"diagonalley/stall.html",
|
||||
stall=json.dumps(
|
||||
[product._asdict() for product in await get_diagonalley_products(stall_id)]
|
||||
),
|
||||
if not product:
|
||||
raise HTTPException(
|
||||
status_code=HTTPStatus.NOT_FOUND, detail="Stall does not exist."
|
||||
)
|
||||
return diagonalley_renderer().TemplateResponse(
|
||||
"diagonalley/stall.html",
|
||||
{"stall": [product.dict() 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.services import create_invoice
|
||||
from lnbits.decorators import (
|
||||
WalletTypeInfo,
|
||||
api_check_wallet_key,
|
||||
api_validate_post_request,
|
||||
get_key_type,
|
||||
require_admin_key,
|
||||
)
|
||||
from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key
|
||||
|
||||
from . import db, diagonalley_ext
|
||||
from .crud import (
|
||||
|
|
Loading…
Add table
Reference in a new issue