diff --git a/qr-labels.py b/qr-labels.py new file mode 100644 index 0000000..9d35bbf --- /dev/null +++ b/qr-labels.py @@ -0,0 +1,59 @@ +from flask import Flask, Response, redirect, url_for, request, session, abort, render_template +from flask_login import LoginManager, UserMixin, login_required, login_user, logout_user, current_user +import json +import re +app = Flask(__name__) + +systemURL = '192.168.0.11:5000' + +with open('links.json', 'r') as infile: + links = json.load(infile) + +def codeValidation(code): + if len(code) not in range (5,6): + return False + if re.match('^[\w-]+$', code) is None: + return False + return True + +def codeLink(code): + global links + if code not in links: + return False + if len(links[code]['url'])==0: + return None + return links[code]['url'] + +@app.route("/edit", methods=['GET', 'POST']) +def edit(): + code = request.form.get("code") + print ("code: {}".format(code)) + if codeLink(code) is False: + return render_template('invalid.html', code=code) + if codeLink(code) is not None: + return render_template('cantedit.html', url=codeLink(code)) + url = request.form.get("url") + if url is None: + return render_template('editlink.html', code=code) + return render_template('success.html') + +@app.route("/admin", methods=['GET', 'POST']) +def admin(): + return render_template('admin.html') + +@app.route("/list") +def list(): + return render_template('message.html', message='Comming soon!™') + +@app.route('/', defaults={'path': ''}) +@app.route('/') +def catch_all(path): + if len(path)==0: + return render_template('welcome.html') + if path in links: + if codeLink(path) is not None: + return redirect(links[path]['url'], code=302) + else: + return render_template('newcode.html', code=path) + else: + return render_template('invalid.html', code=path) \ No newline at end of file