fix: startup of lntickets listeners
This commit is contained in:
parent
f827d2ce18
commit
534dfdb4e0
3 changed files with 17 additions and 13 deletions
|
|
@ -96,6 +96,10 @@ def register_routes(app: FastAPI) -> None:
|
||||||
ext_module = importlib.import_module(f"lnbits.extensions.{ext.code}")
|
ext_module = importlib.import_module(f"lnbits.extensions.{ext.code}")
|
||||||
ext_route = getattr(ext_module, f"{ext.code}_ext")
|
ext_route = getattr(ext_module, f"{ext.code}_ext")
|
||||||
|
|
||||||
|
if hasattr(ext_module, f"{ext.code}_start"):
|
||||||
|
ext_start_func = getattr(ext_module, f"{ext.code}_start")
|
||||||
|
ext_start_func()
|
||||||
|
|
||||||
if hasattr(ext_module, f"{ext.code}_static_files"):
|
if hasattr(ext_module, f"{ext.code}_static_files"):
|
||||||
ext_statics = getattr(ext_module, f"{ext.code}_static_files")
|
ext_statics = getattr(ext_module, f"{ext.code}_static_files")
|
||||||
for s in ext_statics:
|
for s in ext_statics:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
|
import asyncio
|
||||||
|
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
|
||||||
from lnbits.db import Database
|
from lnbits.db import Database
|
||||||
from lnbits.helpers import template_renderer
|
from lnbits.helpers import template_renderer
|
||||||
|
from lnbits.tasks import catch_everything_and_restart
|
||||||
|
|
||||||
db = Database("ext_lnticket")
|
db = Database("ext_lnticket")
|
||||||
|
|
||||||
|
|
@ -21,9 +24,10 @@ def lnticket_renderer():
|
||||||
|
|
||||||
from .views_api import * # noqa
|
from .views_api import * # noqa
|
||||||
from .views import * # noqa
|
from .views import * # noqa
|
||||||
from .tasks import register_listeners
|
from .tasks import wait_for_paid_invoices
|
||||||
|
|
||||||
|
|
||||||
|
def lnticket_start():
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
loop.create_task(catch_everything_and_restart(wait_for_paid_invoices))
|
||||||
|
|
||||||
@lnticket_ext.on_event("startup")
|
|
||||||
def _do_it():
|
|
||||||
# FIXME: isn't called yet
|
|
||||||
register_listeners()
|
|
||||||
|
|
|
||||||
|
|
@ -6,16 +6,12 @@ from lnbits.tasks import register_invoice_listener
|
||||||
from .crud import get_ticket, set_ticket_paid
|
from .crud import get_ticket, set_ticket_paid
|
||||||
|
|
||||||
|
|
||||||
async def register_listeners():
|
async def wait_for_paid_invoices():
|
||||||
send_queue = asyncio.Queue()
|
invoice_queue = asyncio.Queue()
|
||||||
recv_queue = asyncio.Queue()
|
register_invoice_listener(invoice_queue)
|
||||||
register_invoice_listener(send_queue)
|
|
||||||
await wait_for_paid_invoices(recv_queue)
|
|
||||||
|
|
||||||
|
|
||||||
async def wait_for_paid_invoices(invoice_paid_queue: asyncio.Queue):
|
|
||||||
while True:
|
while True:
|
||||||
payment = await invoice_paid_queue.get()
|
payment = await invoice_queue.get()
|
||||||
await on_invoice_paid(payment)
|
await on_invoice_paid(payment)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue