import logging from io import BytesIO from pathlib import Path from backend.config import DOSSIER_EXPORTS, charger_config log = logging.getLogger("photobooth.qrcode") try: import qrcode QRCODE_DISPONIBLE = True except ImportError: QRCODE_DISPONIBLE = False log.warning("qrcode non installe") def generer_qr(contenu: str, nom: str = "qr.png") -> Path | None: """Genere un QR code PNG.""" if not QRCODE_DISPONIBLE: log.error("Module qrcode non disponible") return None qr = qrcode.QRCode(version=1, box_size=10, border=4) qr.add_data(contenu) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") chemin = DOSSIER_EXPORTS / nom img.save(chemin) log.info(f"QR code genere : {chemin}") return chemin def qr_galerie() -> Path | None: """Genere le QR code pointant vers la galerie en ligne.""" config = charger_config() url = config.get("qr_code", {}).get("url_galerie", "") if not url: log.warning("URL galerie non configuree") return None return generer_qr(url, "qr_galerie.png")