moved panzer into separate file, added 404 error handler, removed profile html page

This commit is contained in:
Xevion
2019-12-21 02:27:25 -06:00
parent 90ebaee9e7
commit 03b3220e3c
5 changed files with 43 additions and 113 deletions

34
app/panzer.py Normal file
View File

@@ -0,0 +1,34 @@
from app import app
from textwrap import wrap
from PIL import Image, ImageDraw, ImageFont
from io import BytesIO
import flask
@app.route('/panzer/')
@app.route('/panzer')
@app.route('/panzer/<string>')
@app.route('/panzer/<string>/')
def panzer(string='bionicles are cooler than sex'):
string = string.replace('+', ' ')
string = string.replace('\n', '%0A')
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)
draw.text((10, 20), 'Oh panzer of the lake, what is your wisdom?', font=font1)
font2 = ImageFont.truetype('./app/static/arial.ttf', size=30)
topleft = (250, 500)
wrapped = wrap(string, width=25)
wrapped = [text.replace('%0A', '\n') for text in wrapped]
for y, text in enumerate(wrapped):
draw.text((topleft[0], topleft[1] + (y * 33)), text, font=font2)
return img
def serve_pil_image(pil_img):
img_io = BytesIO()
pil_img.save(img_io, 'JPEG', quality=50)
img_io.seek(0)
return flask.send_file(img_io, mimetype='image/jpeg')

View File

@@ -5,9 +5,6 @@ from app.custom import require_role
from werkzeug.urls import url_parse from werkzeug.urls import url_parse
from flask import render_template, redirect, url_for, flash, request, jsonify, abort, send_file 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 flask_login import current_user, login_user, logout_user, login_required
from io import BytesIO
from textwrap import wrap
from PIL import Image, ImageDraw, ImageFont
from multiprocessing import Value from multiprocessing import Value
import flask import flask
import requests import requests
@@ -76,40 +73,6 @@ def getAvatar(id=''):
url = cdn.format(id, user['avatar']) url = cdn.format(id, user['avatar'])
return "<img src=\"{}\">".format(url) return "<img src=\"{}\">".format(url)
def serve_pil_image(pil_img):
img_io = BytesIO()
pil_img.save(img_io, 'JPEG', quality=50)
img_io.seek(0)
return flask.send_file(img_io, mimetype='image/jpeg')
@app.route('/panzer/')
@app.route('/panzer')
@app.route('/panzer/<string>')
@app.route('/panzer/<string>/')
def panzer(string='bionicles are cooler than sex'):
string = string.replace('+', ' ')
string = string.replace('\n', '%0A')
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)
draw.text((10, 20), 'Oh panzer of the lake, what is your wisdom?', font=font1)
font2 = ImageFont.truetype('./app/static/arial.ttf', size=30)
topleft = (250, 500)
wrapped = wrap(string, width=25)
wrapped = [text.replace('%0A', '\n') for text in wrapped]
for y, text in enumerate(wrapped):
draw.text((topleft[0], topleft[1] + (y * 33)), text, font=font2)
return img
@app.errorhandler(404)
def page_not_found(e):
# note that we set the 404 status explicitly
return render_template('404.html'), 404
@app.route('/userinfo/') @app.route('/userinfo/')
@login_required @login_required
@require_role(roles=['Admin']) @require_role(roles=['Admin'])

View File

@@ -1,5 +1,5 @@
from app import app from app import app
from flask import send_from_directory, redirect, url_for from flask import send_from_directory, redirect, url_for, render_template
import mistune import mistune
import os import os
@@ -20,3 +20,8 @@ def favicon():
@app.errorhandler(401) @app.errorhandler(401)
def unauthorized(e): def unauthorized(e):
return redirect(url_for('login')) return redirect(url_for('login'))
@app.errorhandler(404)
def page_not_found(e):
# note that we set the 404 status explicitly
return render_template('404.html'), 404

View File

@@ -5,10 +5,10 @@
<div class="hero-body"> <div class="hero-body">
<div class="container has-text-centered"> <div class="container has-text-centered">
<p class="title"> <p class="title">
404 {{ code }}
</p> </p>
<p class="subtitle"> <p class="subtitle">
Content Not Found... <a href="{{ url_for('index') }}">Go home?</a> {{ message }} <em href="{{ url_for('index') }}">Go home?</em>
</p> </p>
</div> </div>
</div> </div>

View File

@@ -1,72 +0,0 @@
{% extends 'base.html' %}
{% block body %}
<section class="section section-padding">
<div class="container">
<div class="columns is-mobile is-multiline is-centered">
<!-- Options Card -->
<div class="column is-4">
<div class="card">
<div class="card-header">
<div class="card-header-title">
{{ user.username }}'s Profile
</div>
</div>
<div class="card-content">
<div class="row align-items-center" style="margin-left: 0px; ">
<div class="form-group">
<!-- Username -->
<div class="row mt-4">
<div class="col-auto">
<label class="mb-1" style="width: 80px;">
Username
</label>
<label style="font-weight: bold;">
{{ user.username }}
</label>
</div>
</div>
{% if user.show_email or current_user.has_role('hidden') %}
<div class="row mt-3">
<div class="col-auto">
<label class="mb-1" style="width: 80px;">
Email
</label>
<label style="font-weight: bold;">
{{ user.email or '-' }}
</label>
</div>
</div>
{% endif %}
<div class="row mt-3">
<div class="col-auto">
<label class="mb-1" style="width: 80px;">
Phone
</label>
<label style="font-weight: bold;">
{{ user.phone_number or '-' }}
</label>
</div>
</div>
</div>
</div>
<div class="row align-items-center" style="margin-left: -10px; ">
<div class="col-auto">
</div>
</div>
</div>
</div>
</div>
<!-- End Options Card -->
</div>
<!-- Card Column Content -->
</div>
</section>
{% endblock body %}}