Initial commit: VPN Telegram bot (sanitized defaults)
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
"""Генерация QR (SVG) без Pillow — только пакет qrcode."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import io
|
||||
|
||||
import qrcode
|
||||
import qrcode.image.svg
|
||||
|
||||
|
||||
def make_qr_svg(data: str, *, scale: int = 4, border: int = 2) -> bytes:
|
||||
"""Возвращает SVG QR как bytes (image/svg+xml)."""
|
||||
text = (data or "").strip()
|
||||
if not text:
|
||||
raise ValueError("empty qr data")
|
||||
factory = qrcode.image.svg.SvgPathImage
|
||||
img = qrcode.make(
|
||||
text,
|
||||
error_correction=qrcode.constants.ERROR_CORRECT_M,
|
||||
box_size=max(2, int(scale)),
|
||||
border=max(1, int(border)),
|
||||
image_factory=factory,
|
||||
)
|
||||
buf = io.BytesIO()
|
||||
img.save(buf)
|
||||
return buf.getvalue()
|
||||
Reference in New Issue
Block a user