events/config.json
Padreug 2f8a602bbd
Some checks failed
lint.yml / feat: attach a self-describing ticket card to the email (1.6.1-aio.10) (pull_request) Failing after 0s
feat: attach a self-describing ticket card to the email (1.6.1-aio.10)
The v1.6.1-aio.9 mail still scored 8.4/10 on mail-tester: the remaining
deduction was HTML_IMAGE_ONLY (1.8) — an HTML part whose only content of
note is a remote <img>. Remote images are also blocked by default in most
clients until the reader opts in, and a bare QR saved from that mail says
nothing about what it opens.

- New `qr.py` module (QR + logo helpers moved out of views_api) with
  `render_ticket_card`: site title, event name, when/where, the branded
  QR, name on ticket, ticket id and the door instruction, laid out with
  the bundled DejaVu Sans; `format_event_when` gives "Fri 19 Feb 2027,
  16:00 - 20:00"; filenames are `ticket-<event-slug>-<id8>.png`.
- `GET /events/api/v1/ticket-card/{ticket_id}` serves the same PNG
  (anonymous, like the QR endpoint); the email's "Ticket image" link
  now points there.
- The ticket email becomes multipart/mixed: text + HTML alternatives
  (URLs as links, no <img>) plus the card as a PNG attachment, which
  clients show inline at the end of the message and which works offline
  at the door.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYwoAkZZmXMMmaBp4WGUBo
2026-09-08 16:40:25 +02:00

67 lines
1.9 KiB
JSON

{
"id": "events",
"version": "1.6.1-aio.10",
"name": "Events",
"repo": "https://git.atitlan.io/aiolabs/events",
"short_description": "Sell and register event tickets",
"description": "",
"tile": "/events/static/image/events.png",
"min_lnbits_version": "1.4.1",
"contributors": [
{
"name": "talvasconcelos",
"uri": "https://github.com/talvasconcelos",
"role": "Developer"
},
{
"name": "dni",
"uri": "https://github.com/dni",
"role": "Developer"
},
{
"name": "prusnak",
"uri": "https://github.com/prusnak",
"role": "Developer"
},
{
"name": "Ben Arc",
"uri": "https://github.com/arcbtc",
"role": "Developer"
},
{
"name": "motorina0",
"uri": "https://github.com/motorina0",
"role": "Developer"
},
{
"name": "padreug",
"uri": "https://git.atitlan.io/padreug",
"role": "Developer (aio fork: approval workflow + NIP-52 Nostr sync + edit gating)"
}
],
"images": [
{
"uri": "https://raw.githubusercontent.com/lnbits/events/main/static/image/1.jpg",
"link": "https://www.youtube.com/embed/hGTkJ9e5TNk?si=DXqBEEzpyyb33UQd"
},
{
"uri": "https://raw.githubusercontent.com/lnbits/events/main/static/image/1.png"
},
{
"uri": "https://raw.githubusercontent.com/lnbits/events/main/static/image/2.jpeg"
},
{
"uri": "https://raw.githubusercontent.com/lnbits/events/main/static/image/3.png"
},
{
"uri": "https://raw.githubusercontent.com/lnbits/events/main/static/image/4.png"
}
],
"description_md": "https://raw.githubusercontent.com/lnbits/events/main/description.md",
"terms_and_conditions_md": "https://raw.githubusercontent.com/lnbits/events/main/toc.md",
"license": "MIT",
"paid_features": "",
"tags": ["Fun & Social", "Ticketing"],
"donate": "",
"hidden": false
}