From bcde392f41a5fdb3af01a1d75d662fbdb3b349d9 Mon Sep 17 00:00:00 2001 From: Arc <33088785+arcbtc@users.noreply.github.com> Date: Sat, 11 Feb 2023 08:06:45 +0000 Subject: [PATCH] Add files via upload --- README.md | 33 ++ __init__.py | 35 +++ config.json | 6 + crud.py | 144 +++++++++ migrations.py | 83 +++++ models.py | 43 +++ static/image/events.png | Bin 0 -> 141835 bytes tasks.py | 36 +++ templates/events/_api_docs.html | 25 ++ templates/events/display.html | 216 +++++++++++++ templates/events/error.html | 35 +++ templates/events/index.html | 538 ++++++++++++++++++++++++++++++++ templates/events/register.html | 176 +++++++++++ templates/events/ticket.html | 44 +++ views.py | 106 +++++++ views_api.py | 194 ++++++++++++ 16 files changed, 1714 insertions(+) create mode 100644 README.md create mode 100644 __init__.py create mode 100644 config.json create mode 100644 crud.py create mode 100644 migrations.py create mode 100644 models.py create mode 100644 static/image/events.png create mode 100644 tasks.py create mode 100644 templates/events/_api_docs.html create mode 100644 templates/events/display.html create mode 100644 templates/events/error.html create mode 100644 templates/events/index.html create mode 100644 templates/events/register.html create mode 100644 templates/events/ticket.html create mode 100644 views.py create mode 100644 views_api.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..11b62fe --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# Events + +## Sell tickets for events and use the built-in scanner for registering attendants + +Events alows you to make tickets for an event. Each ticket is in the form of a uniqque QR code. After registering, and paying for ticket, the user gets a QR code to present at registration/entrance. + +Events includes a shareable ticket scanner, which can be used to register attendees. + +## Usage + +1. Create an event\ + ![create event](https://i.imgur.com/dadK1dp.jpg) +2. Fill out the event information: + + - event name + - wallet (normally there's only one) + - event information + - closing date for event registration + - begin and end date of the event + + ![event info](https://imgur.com/KAv68Yr.jpg) + +3. Share the event registration link\ + ![event ticket](https://imgur.com/AQWUOBY.jpg) + + - ticket example\ + ![ticket example](https://i.imgur.com/trAVSLd.jpg) + + - QR code ticket, presented after invoice paid, to present at registration\ + ![event ticket](https://i.imgur.com/M0ROM82.jpg) + +4. Use the built-in ticket scanner to validate registered, and paid, attendees\ + ![ticket scanner](https://i.imgur.com/zrm9202.jpg) diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..b928336 --- /dev/null +++ b/__init__.py @@ -0,0 +1,35 @@ +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_events") + + +events_ext: APIRouter = APIRouter(prefix="/events", tags=["Events"]) + +events_static_files = [ + { + "path": "/events/static", + "app": StaticFiles(packages=[("lnbits", "extensions/events/static")]), + "name": "events_static", + } +] + + +def events_renderer(): + return template_renderer(["lnbits/extensions/events/templates"]) + + +from .tasks import wait_for_paid_invoices +from .views import * # noqa: F401,F403 +from .views_api import * # noqa: F401,F403 + + +def events_start(): + loop = asyncio.get_event_loop() + loop.create_task(catch_everything_and_restart(wait_for_paid_invoices)) diff --git a/config.json b/config.json new file mode 100644 index 0000000..a62bcc4 --- /dev/null +++ b/config.json @@ -0,0 +1,6 @@ +{ + "name": "Events", + "short_description": "Sell and register event tickets", + "tile": "/events/static/image/events.png", + "contributors": ["benarc"] +} diff --git a/crud.py b/crud.py new file mode 100644 index 0000000..12cc732 --- /dev/null +++ b/crud.py @@ -0,0 +1,144 @@ +from typing import List, Optional, Union + +from lnbits.helpers import urlsafe_short_hash + +from . import db +from .models import CreateEvent, Events, Tickets + +# TICKETS + + +async def create_ticket( + payment_hash: str, wallet: str, event: str, name: str, email: str +) -> Tickets: + await db.execute( + """ + INSERT INTO events.ticket (id, wallet, event, name, email, registered, paid) + VALUES (?, ?, ?, ?, ?, ?, ?) + """, + (payment_hash, wallet, event, name, email, False, True), + ) + + # UPDATE EVENT DATA ON SOLD TICKET + eventdata = await get_event(event) + assert eventdata, "Couldn't get event from ticket being paid" + sold = eventdata.sold + 1 + amount_tickets = eventdata.amount_tickets - 1 + await db.execute( + """ + UPDATE events.events + SET sold = ?, amount_tickets = ? + WHERE id = ? + """, + (sold, amount_tickets, event), + ) + + ticket = await get_ticket(payment_hash) + assert ticket, "Newly created ticket couldn't be retrieved" + return ticket + + +async def get_ticket(payment_hash: str) -> Optional[Tickets]: + row = await db.fetchone("SELECT * FROM events.ticket WHERE id = ?", (payment_hash,)) + return Tickets(**row) if row else None + + +async def get_tickets(wallet_ids: Union[str, List[str]]) -> List[Tickets]: + if isinstance(wallet_ids, str): + wallet_ids = [wallet_ids] + + q = ",".join(["?"] * len(wallet_ids)) + rows = await db.fetchall( + f"SELECT * FROM events.ticket WHERE wallet IN ({q})", (*wallet_ids,) + ) + return [Tickets(**row) for row in rows] + + +async def delete_ticket(payment_hash: str) -> None: + await db.execute("DELETE FROM events.ticket WHERE id = ?", (payment_hash,)) + + +async def delete_event_tickets(event_id: str) -> None: + await db.execute("DELETE FROM events.ticket WHERE event = ?", (event_id,)) + + +# EVENTS + + +async def create_event(data: CreateEvent) -> Events: + event_id = urlsafe_short_hash() + await db.execute( + """ + INSERT INTO events.events (id, wallet, name, info, closing_date, event_start_date, event_end_date, amount_tickets, price_per_ticket, sold) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + event_id, + data.wallet, + data.name, + data.info, + data.closing_date, + data.event_start_date, + data.event_end_date, + data.amount_tickets, + data.price_per_ticket, + 0, + ), + ) + + event = await get_event(event_id) + assert event, "Newly created event couldn't be retrieved" + return event + + +async def update_event(event_id: str, **kwargs) -> Events: + q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()]) + await db.execute( + f"UPDATE events.events SET {q} WHERE id = ?", (*kwargs.values(), event_id) + ) + event = await get_event(event_id) + assert event, "Newly updated event couldn't be retrieved" + return event + + +async def get_event(event_id: str) -> Optional[Events]: + row = await db.fetchone("SELECT * FROM events.events WHERE id = ?", (event_id,)) + return Events(**row) if row else None + + +async def get_events(wallet_ids: Union[str, List[str]]) -> List[Events]: + if isinstance(wallet_ids, str): + wallet_ids = [wallet_ids] + + q = ",".join(["?"] * len(wallet_ids)) + rows = await db.fetchall( + f"SELECT * FROM events.events WHERE wallet IN ({q})", (*wallet_ids,) + ) + + return [Events(**row) for row in rows] + + +async def delete_event(event_id: str) -> None: + await db.execute("DELETE FROM events.events WHERE id = ?", (event_id,)) + + +# EVENTTICKETS + + +async def get_event_tickets(event_id: str, wallet_id: str) -> List[Tickets]: + rows = await db.fetchall( + "SELECT * FROM events.ticket WHERE wallet = ? AND event = ?", + (wallet_id, event_id), + ) + return [Tickets(**row) for row in rows] + + +async def reg_ticket(ticket_id: str) -> List[Tickets]: + await db.execute( + "UPDATE events.ticket SET registered = ? WHERE id = ?", (True, ticket_id) + ) + ticket = await db.fetchone("SELECT * FROM events.ticket WHERE id = ?", (ticket_id,)) + rows = await db.fetchall( + "SELECT * FROM events.ticket WHERE event = ?", (ticket[1],) + ) + return [Tickets(**row) for row in rows] diff --git a/migrations.py b/migrations.py new file mode 100644 index 0000000..5b9d53b --- /dev/null +++ b/migrations.py @@ -0,0 +1,83 @@ +async def m001_initial(db): + + await db.execute( + """ + CREATE TABLE events.events ( + id TEXT PRIMARY KEY, + wallet TEXT NOT NULL, + name TEXT NOT NULL, + info TEXT NOT NULL, + closing_date TEXT NOT NULL, + event_start_date TEXT NOT NULL, + event_end_date TEXT NOT NULL, + amount_tickets INTEGER NOT NULL, + price_per_ticket INTEGER NOT NULL, + sold INTEGER NOT NULL, + time TIMESTAMP NOT NULL DEFAULT """ + + db.timestamp_now + + """ + ); + """ + ) + + await db.execute( + """ + CREATE TABLE events.tickets ( + id TEXT PRIMARY KEY, + wallet TEXT NOT NULL, + event TEXT NOT NULL, + name TEXT NOT NULL, + email TEXT NOT NULL, + registered BOOLEAN NOT NULL, + time TIMESTAMP NOT NULL DEFAULT """ + + db.timestamp_now + + """ + ); + """ + ) + + +async def m002_changed(db): + + await db.execute( + """ + CREATE TABLE events.ticket ( + id TEXT PRIMARY KEY, + wallet TEXT NOT NULL, + event TEXT NOT NULL, + name TEXT NOT NULL, + email TEXT NOT NULL, + registered BOOLEAN NOT NULL, + paid BOOLEAN NOT NULL, + time TIMESTAMP NOT NULL DEFAULT """ + + db.timestamp_now + + """ + ); + """ + ) + + for row in [list(row) for row in await db.fetchall("SELECT * FROM events.tickets")]: + usescsv = "" + + for i in range(row[5]): + if row[7]: + usescsv += "," + str(i + 1) + else: + usescsv += "," + str(1) + usescsv = usescsv[1:] + await db.execute( + """ + INSERT INTO events.ticket ( + id, + wallet, + event, + name, + email, + registered, + paid + ) + VALUES (?, ?, ?, ?, ?, ?, ?) + """, + (row[0], row[1], row[2], row[3], row[4], row[5], True), + ) + await db.execute("DROP TABLE events.tickets") diff --git a/models.py b/models.py new file mode 100644 index 0000000..dd38e97 --- /dev/null +++ b/models.py @@ -0,0 +1,43 @@ +from fastapi.param_functions import Query +from pydantic import BaseModel + + +class CreateEvent(BaseModel): + wallet: str + name: str + info: str + closing_date: str + event_start_date: str + event_end_date: str + amount_tickets: int = Query(..., ge=0) + price_per_ticket: int = Query(..., ge=0) + + +class CreateTicket(BaseModel): + name: str + email: str + + +class Events(BaseModel): + id: str + wallet: str + name: str + info: str + closing_date: str + event_start_date: str + event_end_date: str + amount_tickets: int + price_per_ticket: int + sold: int + time: int + + +class Tickets(BaseModel): + id: str + wallet: str + event: str + name: str + email: str + registered: bool + paid: bool + time: int diff --git a/static/image/events.png b/static/image/events.png new file mode 100644 index 0000000000000000000000000000000000000000..65c1bddb592232648cdb2f98ed4a79265c88f97c GIT binary patch literal 141835 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

cWYF**&YptG3ueDA|_lng>sgW-TG>uvIQ_$qj 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 None: + # (avoid loops) + if ( + payment.extra + and "events" == payment.extra.get("tag") + and payment.extra.get("name") + and payment.extra.get("email") + ): + await api_ticket_send_ticket( + payment.memo, + payment.payment_hash, + CreateTicket( + name=str(payment.extra.get("name")), + email=str(payment.extra.get("email")), + ), + ) + return diff --git a/templates/events/_api_docs.html b/templates/events/_api_docs.html new file mode 100644 index 0000000..9a24d70 --- /dev/null +++ b/templates/events/_api_docs.html @@ -0,0 +1,25 @@ + + + +

+ Events: Sell and register ticket waves for an event +
+

+ Events alows you to make a wave of tickets for an event, each ticket is + in the form of a unqiue QRcode, which the user presents at registration. + Events comes with a shareable ticket scanner, which can be used to + register attendees.
+ + Created by, +
Ben Arc + +

+ + + + diff --git a/templates/events/display.html b/templates/events/display.html new file mode 100644 index 0000000..45c2aca --- /dev/null +++ b/templates/events/display.html @@ -0,0 +1,216 @@ +{% extends "public.html" %} {% block page %} +
+
+ + +

{{ event_name }}

+
+
{{ event_info }}
+
+ + + + +
+ Submit + Cancel +
+
+
+
+ + +
+ Link to your ticket! +

+

You'll be redirected in a few moments...

+
+
+
+ + + + + + +
+ Copy invoice + Close +
+
+
+
+ +{% endblock %} {% block scripts %} + +{% endblock %} diff --git a/templates/events/error.html b/templates/events/error.html new file mode 100644 index 0000000..f231177 --- /dev/null +++ b/templates/events/error.html @@ -0,0 +1,35 @@ +{% extends "public.html" %} {% block page %} +
+
+ + +
+

{{ event_name }} error

+
+ + +
{{ event_error }}
+
+
+
+
+
+ + {% endblock %} {% block scripts %} + + + + {% endblock %} +
diff --git a/templates/events/index.html b/templates/events/index.html new file mode 100644 index 0000000..2125893 --- /dev/null +++ b/templates/events/index.html @@ -0,0 +1,538 @@ +{% extends "base.html" %} {% from "macros.jinja" import window_vars with context +%} {% block page %} +
+
+ + + New Event + + + + + +
+
+
Events
+
+
+ Export to CSV +
+
+ + {% raw %} + + + {% endraw %} + +
+
+ + + +
+
+
Tickets
+
+
+ Export to CSV +
+
+ + {% raw %} + + + {% endraw %} + +
+
+
+
+ + +
+ {{SITE_TITLE}} Events extension +
+
+ + + {% include "events/_api_docs.html" %} + +
+
+ + + + +
+
+ +
+
+ + +
+
+ + +
+
Ticket closing date
+
+ +
+
+ +
+
Event begins
+
+ +
+
+ +
+
Event ends
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ Update Event + Create Event + Cancel +
+
+
+
+
+{% endblock %} {% block scripts %} {{ window_vars(user) }} + +{% endblock %} diff --git a/templates/events/register.html b/templates/events/register.html new file mode 100644 index 0000000..43d4307 --- /dev/null +++ b/templates/events/register.html @@ -0,0 +1,176 @@ +{% extends "public.html" %} {% block page %} + +
+
+ + +
+

{{ event_name }} Registration

+
+ +
+ + Scan ticket +
+
+
+ + + + + {% raw %} + + + {% endraw %} + + + +
+ + + +
+ +
+
+ Cancel +
+
+
+
+{% endblock %} {% block scripts %} + +{% endblock %} diff --git a/templates/events/ticket.html b/templates/events/ticket.html new file mode 100644 index 0000000..21b7cfa --- /dev/null +++ b/templates/events/ticket.html @@ -0,0 +1,44 @@ +{% extends "public.html" %} {% block page %} +
+
+ + +
+

{{ ticket_name }} Ticket

+
+
+ Bookmark, print or screenshot this page,
+ and present it for registration! +
+
+ + +
+ + Print +
+
+
+
+
+{% endblock %} {% block scripts %} + +{% endblock %} diff --git a/views.py b/views.py new file mode 100644 index 0000000..4ed5679 --- /dev/null +++ b/views.py @@ -0,0 +1,106 @@ +from datetime import date, datetime +from http import HTTPStatus + +from fastapi import Depends, Request +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 + +from . import events_ext, events_renderer +from .crud import get_event, get_ticket + +templates = Jinja2Templates(directory="templates") + + +@events_ext.get("/", response_class=HTMLResponse) +async def index(request: Request, user: User = Depends(check_user_exists)): + return events_renderer().TemplateResponse( + "events/index.html", {"request": request, "user": user.dict()} + ) + + +@events_ext.get("/{event_id}", response_class=HTMLResponse) +async def display(request: Request, event_id): + event = await get_event(event_id) + if not event: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Event does not exist." + ) + + if event.amount_tickets < 1: + return events_renderer().TemplateResponse( + "events/error.html", + { + "request": request, + "event_name": event.name, + "event_error": "Sorry, tickets are sold out :(", + }, + ) + datetime_object = datetime.strptime(event.closing_date, "%Y-%m-%d").date() + if date.today() > datetime_object: + return events_renderer().TemplateResponse( + "events/error.html", + { + "request": request, + "event_name": event.name, + "event_error": "Sorry, ticket closing date has passed :(", + }, + ) + + return events_renderer().TemplateResponse( + "events/display.html", + { + "request": request, + "event_id": event_id, + "event_name": event.name, + "event_info": event.info, + "event_price": event.price_per_ticket, + }, + ) + + +@events_ext.get("/ticket/{ticket_id}", response_class=HTMLResponse) +async def ticket(request: Request, ticket_id): + ticket = await get_ticket(ticket_id) + if not ticket: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Ticket does not exist." + ) + + event = await get_event(ticket.event) + if not event: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Event does not exist." + ) + + return events_renderer().TemplateResponse( + "events/ticket.html", + { + "request": request, + "ticket_id": ticket_id, + "ticket_name": event.name, + "ticket_info": event.info, + }, + ) + + +@events_ext.get("/register/{event_id}", response_class=HTMLResponse) +async def register(request: Request, event_id): + event = await get_event(event_id) + if not event: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Event does not exist." + ) + + return events_renderer().TemplateResponse( + "events/register.html", + { + "request": request, + "event_id": event_id, + "event_name": event.name, + "wallet_id": event.wallet, + }, + ) diff --git a/views_api.py b/views_api.py new file mode 100644 index 0000000..f27485d --- /dev/null +++ b/views_api.py @@ -0,0 +1,194 @@ +from http import HTTPStatus + +from fastapi import Depends, Query +from starlette.exceptions import HTTPException + +from lnbits.core.crud import get_user +from lnbits.core.services import create_invoice +from lnbits.core.views.api import api_payment +from lnbits.decorators import WalletTypeInfo, get_key_type + +from . import events_ext +from .crud import ( + create_event, + create_ticket, + delete_event, + delete_event_tickets, + delete_ticket, + get_event, + get_event_tickets, + get_events, + get_ticket, + get_tickets, + reg_ticket, + update_event, +) +from .models import CreateEvent, CreateTicket + +# Events + + +@events_ext.get("/api/v1/events") +async def api_events( + all_wallets: bool = Query(False), wallet: WalletTypeInfo = Depends(get_key_type) +): + wallet_ids = [wallet.wallet.id] + + if all_wallets: + user = await get_user(wallet.wallet.user) + wallet_ids = user.wallet_ids if user else [] + + return [event.dict() for event in await get_events(wallet_ids)] + + +@events_ext.post("/api/v1/events") +@events_ext.put("/api/v1/events/{event_id}") +async def api_event_create( + data: CreateEvent, event_id=None, wallet: WalletTypeInfo = Depends(get_key_type) +): + if event_id: + event = await get_event(event_id) + if not event: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Event does not exist." + ) + + if event.wallet != wallet.wallet.id: + raise HTTPException( + status_code=HTTPStatus.FORBIDDEN, detail="Not your event." + ) + event = await update_event(event_id, **data.dict()) + else: + event = await create_event(data=data) + + return event.dict() + + +@events_ext.delete("/api/v1/events/{event_id}") +async def api_form_delete(event_id, wallet: WalletTypeInfo = Depends(get_key_type)): + event = await get_event(event_id) + if not event: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Event does not exist." + ) + + if event.wallet != wallet.wallet.id: + raise HTTPException(status_code=HTTPStatus.FORBIDDEN, detail="Not your event.") + + await delete_event(event_id) + await delete_event_tickets(event_id) + return "", HTTPStatus.NO_CONTENT + + +#########Tickets########## + + +@events_ext.get("/api/v1/tickets") +async def api_tickets( + all_wallets: bool = Query(False), wallet: WalletTypeInfo = Depends(get_key_type) +): + wallet_ids = [wallet.wallet.id] + + if all_wallets: + user = await get_user(wallet.wallet.user) + wallet_ids = user.wallet_ids if user else [] + + return [ticket.dict() for ticket in await get_tickets(wallet_ids)] + + +@events_ext.get("/api/v1/tickets/{event_id}/{name}/{email}") +async def api_ticket_make_ticket(event_id, name, email): + event = await get_event(event_id) + if not event: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Event does not exist." + ) + try: + payment_hash, payment_request = await create_invoice( + wallet_id=event.wallet, + amount=event.price_per_ticket, + memo=f"{event_id}", + extra={"tag": "events", "name": name, "email": email}, + ) + except Exception as e: + raise HTTPException(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail=str(e)) + return {"payment_hash": payment_hash, "payment_request": payment_request} + + +@events_ext.post("/api/v1/tickets/{event_id}/{payment_hash}") +async def api_ticket_send_ticket(event_id, payment_hash, data: CreateTicket): + event = await get_event(event_id) + if not event: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, + detail="Event could not be fetched.", + ) + + status = await api_payment(payment_hash) + if status["paid"]: + + exists = await get_ticket(payment_hash) + if exists: + return {"paid": True, "ticket_id": exists.id} + + ticket = await create_ticket( + payment_hash=payment_hash, + wallet=event.wallet, + event=event_id, + name=data.name, + email=data.email, + ) + if not ticket: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, + detail="Event could not be fetched.", + ) + return {"paid": True, "ticket_id": ticket.id} + return {"paid": False} + + +@events_ext.delete("/api/v1/tickets/{ticket_id}") +async def api_ticket_delete(ticket_id, wallet: WalletTypeInfo = Depends(get_key_type)): + ticket = await get_ticket(ticket_id) + if not ticket: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Ticket does not exist." + ) + + if ticket.wallet != wallet.wallet.id: + raise HTTPException(status_code=HTTPStatus.FORBIDDEN, detail="Not your ticket.") + + await delete_ticket(ticket_id) + return "", HTTPStatus.NO_CONTENT + + +# Event Tickets + + +@events_ext.get("/api/v1/eventtickets/{wallet_id}/{event_id}") +async def api_event_tickets(wallet_id, event_id): + return [ + ticket.dict() + for ticket in await get_event_tickets(wallet_id=wallet_id, event_id=event_id) + ] + + +@events_ext.get("/api/v1/register/ticket/{ticket_id}") +async def api_event_register_ticket(ticket_id): + ticket = await get_ticket(ticket_id) + if not ticket: + raise HTTPException( + status_code=HTTPStatus.NOT_FOUND, detail="Ticket does not exist." + ) + + if not ticket.paid: + raise HTTPException( + status_code=HTTPStatus.FORBIDDEN, detail="Ticket not paid for." + ) + + if ticket.registered is True: + raise HTTPException( + status_code=HTTPStatus.FORBIDDEN, detail="Ticket already registered" + ) + + return [ticket.dict() for ticket in await reg_ticket(ticket_id)]