phase 3 23 qr-scan-check

This commit is contained in:
2026-03-10 12:11:38 +00:00
parent 887a718a65
commit 3bf4a2189f
8 changed files with 377 additions and 8 deletions

View File

@@ -3,7 +3,6 @@
Поддержка кириллицы: ищет системный TTF-шрифт; при неудаче — транслитерация.
"""
import io
import json
import os
import qrcode
@@ -85,6 +84,7 @@ def generate_qr_ticket(
row: int,
number: int,
price: int,
secret_token: str,
) -> bytes:
"""
Renders a landscape ticket (600×250 pt) and returns PDF bytes.
@@ -165,11 +165,7 @@ def generate_qr_ticket(
c.drawCentredString(495, 30, _safe("Сканировать при входе"))
# ── QR code ──
qr_data = json.dumps(
{"id": ticket_id, "t": title, "s": sector, "r": row, "m": number},
ensure_ascii=False,
separators=(",", ":"),
)
qr_data = f"https://openticket.artifitial.ru/scanner?token={secret_token}"
qr = qrcode.QRCode(box_size=5, border=1, error_correction=qrcode.constants.ERROR_CORRECT_M)
qr.add_data(qr_data)
qr.make(fit=True)