Fix milestone sharing previews and publisher recovery
This commit is contained in:
@@ -57,14 +57,19 @@ def render_card(card):
|
||||
else:
|
||||
logo_x = 68
|
||||
draw.text((logo_x, 70), "QR MASTER", font=medium, fill=navy)
|
||||
badge_text = "Verified scan milestone"
|
||||
badge_font = font("DejaVuSans.ttf", 19)
|
||||
badge_box = draw.textbbox((0, 0), badge_text, font=badge_font)
|
||||
badge_width = badge_box[2] - badge_box[0]
|
||||
draw.rounded_rectangle((1120 - badge_width - 32, 61, 1132, 106), radius=7, fill="#ecfdf5")
|
||||
draw.text((1116, 73), badge_text, font=badge_font, fill=mint, anchor="ra")
|
||||
draw.line((68, 124, 1132, 124), fill="#e5edf5", width=2)
|
||||
|
||||
total = int(card.get("totalUniqueScans") or card.get("threshold") or 0)
|
||||
total_scans = int(card.get("totalScans") or total)
|
||||
draw.text((66, 212), f"{total:,}", font=display, fill=navy)
|
||||
draw.text((73, 374), "UNIQUE SCANS", font=medium, fill=navy)
|
||||
draw.text((74, 410), f"{total_scans:,} total scans", font=font("DejaVuSans.ttf", 20), fill=slate)
|
||||
draw.line((68, 548, 108, 548), fill=blue, width=4)
|
||||
draw.text((126, 530), "QR code milestone", font=regular, fill=slate)
|
||||
|
||||
trend = card.get("trend") or {}
|
||||
raw_points = trend.get("points") or []
|
||||
@@ -89,7 +94,11 @@ def render_card(card):
|
||||
draw.ellipse((x - 8, y - 8, x + 8, y + 8), fill="#ffffff", outline=blue, width=5)
|
||||
draw.text((left, top + height + 27), trend.get("startLabel") or "Created", font=font("DejaVuSans.ttf", 19), fill=slate)
|
||||
draw.text((left + width, top + height + 27), trend.get("endLabel") or "Reached", font=font("DejaVuSans.ttf", 19), fill=slate, anchor="ra")
|
||||
draw.text((870, 530), "VERIFIED SCAN DATA", font=font("DejaVuSans-Bold.ttf", 18), fill=mint)
|
||||
draw.line((68, 536, 1132, 536), fill="#e5edf5", width=2)
|
||||
title = str(card.get("qrTitle") or "QR code")
|
||||
if len(title) > 52:
|
||||
title = title[:49].rstrip() + "..."
|
||||
draw.text((68, 558), title, font=medium, fill=navy)
|
||||
path = Path(tempfile.mkstemp(suffix=".png")[1])
|
||||
image.save(path, "PNG", optimize=True)
|
||||
return path
|
||||
|
||||
Reference in New Issue
Block a user