diff --git a/app/routes.py b/app/routes.py index b91f793..1b7e5b7 100644 --- a/app/routes.py +++ b/app/routes.py @@ -3,8 +3,10 @@ from app.models import User, Search from app.forms import LoginForm, RegistrationForm from app.custom import require_role from werkzeug.urls import url_parse -from flask import render_template, redirect, url_for, flash, request, jsonify, abort +from flask import render_template, redirect, url_for, flash, request, jsonify, abort, send_file from flask_login import current_user, login_user, logout_user, login_required +from io import BytesIO +from PIL import Image, ImageDraw, ImageFont import requests import xmltodict import base64 @@ -22,6 +24,29 @@ def strgen(length): def unauthorized(e): return redirect(url_for('login')) +def serve_pil_image(pil_img): + img_io = BytesIO() + pil_img.save(img_io, 'JPEG', quality=50) + img_io.seek(0) + return send_file(img_io, mimetype='image/jpeg') + +@app.route('/panzer/') +@app.route('/panzer/') +def panzer(string='bionicles are cooler than sex'): + string = string.replace('+', ' ') + image = create_panzer(string) + return serve_pil_image(image) + +def create_panzer(string): + img = Image.open("./app/static/panzer.jpeg") + draw = ImageDraw.Draw(img) + font1 = ImageFont.truetype('./app/static/arial.ttf', size=30) + font2 = ImageFont.truetype('./app/static/arial.ttf', size=30) + draw.text((10, 20), 'Oh panzer of the lake, what is your wisdom?', font=font1) + draw.text((250, 500), string, font=font2) + return img + + @app.route('/profile/') @login_required def profile(): diff --git a/app/static/arial.ttf b/app/static/arial.ttf new file mode 100644 index 0000000..886789b Binary files /dev/null and b/app/static/arial.ttf differ diff --git a/app/static/panzer.jpeg b/app/static/panzer.jpeg new file mode 100644 index 0000000..62bcf9d Binary files /dev/null and b/app/static/panzer.jpeg differ diff --git a/app/templates/dashboard/profile_settings.html b/app/templates/dashboard/profile_settings.html index 4398520..f725416 100644 --- a/app/templates/dashboard/profile_settings.html +++ b/app/templates/dashboard/profile_settings.html @@ -27,21 +27,25 @@ }); {% endblock head %} + {% block dashboard_body %}

Profile Settings

+
{{ form.hidden_tag() }}

{{ form.show_email.label }}

- {{ form.show_email() }} + {{ form.show_email(class="radio") }}
- +
+ +
{{ form.hidden_tag() }}

{{ form.profile_picture_file.label }}

{{ form.profile_picture_file(class="") }} @@ -59,7 +63,6 @@ - {{ form.submit(class="button is-danger") }}