From 8a9da695aa434950c299e80da7f1b5cdf14b7008 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Thu, 27 Jun 2024 13:52:28 +1000 Subject: [PATCH] fix: use local qr code generation to fix broken QR codes --- requirements.txt | 3 ++- server.py | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 4856176..49795be 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,5 @@ python-dotenv gunicorn requests cloudflare -apscheduler \ No newline at end of file +apscheduler +qrcode \ No newline at end of file diff --git a/server.py b/server.py index 4330699..8996ce4 100644 --- a/server.py +++ b/server.py @@ -1,4 +1,4 @@ -from flask import Flask, make_response, redirect, request, jsonify, render_template, send_from_directory +from flask import Flask, make_response, redirect, request, jsonify, render_template, send_from_directory, send_file import os import dotenv import requests @@ -8,6 +8,8 @@ import render import payments import threading import account +import qrcode +from io import BytesIO app = Flask(__name__) dotenv.load_dotenv() @@ -304,7 +306,7 @@ def payment_post(): finalPrice = payment['ID'] HNSaddress = payment['HNSaddress'] - qr = f"QR Code" + qr = f"" # Center the QR code qr = f"
{qr}
" @@ -313,6 +315,20 @@ def payment_post(): responce.set_cookie('cart', '[]') return responce +@app.route('/qr/') +def qr(path): + # Generate QR code + qr = qrcode.make(path) + + # Save the QR code to a bytes buffer + buffer = BytesIO() + qr.save(buffer, format='PNG') + buffer.seek(0) + + # Serve the image + return send_file(buffer, mimetype='image/png') + + # Promo routes @app.route('/promo')