Skip to content

Commit

Permalink
Merge pull request #4 from debemdeboas/DeB-1
Browse files Browse the repository at this point in the history
Various changes
  • Loading branch information
debemdeboas committed Oct 7, 2020
2 parents 0c68a10 + 96bda9a commit 12ed492
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 16 deletions.
39 changes: 30 additions & 9 deletions app.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
from dotenv import main
from qrcode_generator import create_qrcode, IMG_OUTPUT_PATH
from flask import Flask, request
from flask_bootstrap import Bootstrap
import os

from dotenv import load_dotenv
from flask import Flask, request
from flask_bootstrap import Bootstrap
from flask.templating import render_template
from dotenv import load_dotenv
from forms import QRCodeForm
from forms import QRCodeForm
from qrcode_generator import create_qrcode, IMG_OUTPUT_PATH

import os
#
# Setup
#

load_dotenv()

Expand All @@ -17,14 +20,32 @@
if not os.path.exists(IMG_OUTPUT_PATH):
os.mkdir(IMG_OUTPUT_PATH)


#
# App routes
#

@app.route('/', methods=['POST', 'GET'])
def homepage():
return render_template('index.html', title='QRCode Generator', form=QRCodeForm())
return render_template(
'index.html',
title='QRCode Generator',
form=QRCodeForm())


@app.route('/generate_qrcode', methods=['POST'])
def generate_qrcode():
img_path = create_qrcode(request.form['content'])
return render_template('generate_qrcode.html', title='generated QRCode', img = img_path, content = request.form['content'])
return render_template(
'generate_qrcode.html',
title='generated QRCode',
img=img_path,
content=request.form['content'])


#
# Run!
#

if __name__ == "__main__":
app.run(threaded=True, port=9691, host='0.0.0.0')
19 changes: 15 additions & 4 deletions qrcode_generator.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
import hashlib
import segno

from datetime import datetime

IMG_OUTPUT_PATH = 'static/qrcodes/'


def generate_qrcode_image(content, err_lvl):
return segno.make(content, error = err_lvl)
return segno.make(content, error=err_lvl)


def create_qrcode(content, error='H'):
filename = IMG_OUTPUT_PATH \
+ hashlib.sha256(
f'{content}_{datetime.now()}'.encode('utf-8')).hexdigest() \
+ '.svg'

def create_qrcode(content, error = 'H'):
filename = IMG_OUTPUT_PATH + hashlib.sha256(f'{content}_{datetime.now()}'.encode('utf-8')).hexdigest() + '.svg'
generate_qrcode_image(content, error).save(filename, scale=10, light='white', dark='black')
generate_qrcode_image(content, error).save(
filename,
scale=10,
light='white',
dark='black')
return filename
4 changes: 4 additions & 0 deletions templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@
<link rel="manifest" href="static/icon/site.webmanifest">
{% endblock %}
{% block html_atrib %}lang="en"{% endblock %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
{% endblock %}
10 changes: 7 additions & 3 deletions templates/generate_qrcode.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
{% extends "base.html" %}

{% block content %}
<div class="container">
<div class="container">
<div class="container text-center">
<div class="container" style="padding: 7px;">
<img src="{{ img }}" alt="QRCode for '{{ content }}'" width="100%">
</div>
<a class="btn btn-primary" href="{{ url_for('homepage') }}" role="button">Generate another!</a>

<div class="container">
<a class="btn btn-primary" href="{{ url_for('homepage') }}" role="button">Generate another</a>
<a class="btn btn-primary" href="{{ img }}" role="button" download="QRCode.svg"><i class="fa fa-download"></i> Download</a>
</div>
</div>
{% endblock %}

0 comments on commit 12ed492

Please sign in to comment.