parent
1aaf5bd1b1
commit
444b9ecf9d
@ -1,94 +0,0 @@
|
|||||||
from flask import Flask, Response, redirect, url_for, request, session, abort, render_template, send_file
|
|
||||||
from flask_login import LoginManager, UserMixin, login_required, login_user, logout_user, current_user
|
|
||||||
from PIL import Image, ImageFont, ImageDraw
|
|
||||||
from io import BytesIO
|
|
||||||
import qrcode
|
|
||||||
import json
|
|
||||||
import re
|
|
||||||
app = Flask(__name__)
|
|
||||||
|
|
||||||
systemURL = 'http://192.168.0.11:5000/'
|
|
||||||
|
|
||||||
with open('links.json', 'r') as infile:
|
|
||||||
links = json.load(infile)
|
|
||||||
|
|
||||||
def saveFile():
|
|
||||||
with open('links.json', 'w') as outfile:
|
|
||||||
json.dump(links, outfile)
|
|
||||||
|
|
||||||
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']
|
|
||||||
|
|
||||||
def serveImage(img):
|
|
||||||
img_io = BytesIO()
|
|
||||||
img.save(img_io, 'PNG')
|
|
||||||
img_io.seek(0)
|
|
||||||
return send_file(img_io, mimetype='image/png')
|
|
||||||
|
|
||||||
@app.route('/code/<code>')
|
|
||||||
def serveCode(code):
|
|
||||||
code = code[:code.find('.')]
|
|
||||||
if codeValidation(code) is False:
|
|
||||||
return send_file('static/invalid.png', mimetype='image/png')
|
|
||||||
img = qrcode.make(systemURL + code)
|
|
||||||
return serveImage(img)
|
|
||||||
|
|
||||||
@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)
|
|
||||||
#Saving the link:
|
|
||||||
links[code]['url']=url
|
|
||||||
saveFile()
|
|
||||||
return render_template('success.html')
|
|
||||||
|
|
||||||
@app.route("/admin")
|
|
||||||
def admin():
|
|
||||||
return render_template('admin.html')
|
|
||||||
|
|
||||||
@app.route("/generate", methods=['GET', 'POST'])
|
|
||||||
def generate():
|
|
||||||
howmany = request.form.get("howmany")
|
|
||||||
if howmany is None:
|
|
||||||
return render_template('generate.html')
|
|
||||||
return render_template("message.html", message="Totally generated {} many codes right now.".format(howmany))
|
|
||||||
|
|
||||||
@app.route("/list")
|
|
||||||
def list():
|
|
||||||
linklist = []
|
|
||||||
for key, value in links.items():
|
|
||||||
if len(value['url'])>0:
|
|
||||||
linklist.append({'code':key, 'url':value['url']})
|
|
||||||
return render_template('list.html', linklist=linklist)
|
|
||||||
|
|
||||||
@app.route('/', defaults={'path': ''})
|
|
||||||
@app.route('/<path:path>')
|
|
||||||
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)
|
|
Loading…
Reference in new issue