Add custom 500 error page. Display the traceback. Center and format error page in general.

Also add a link to github for reporting the exception.
This commit is contained in:
James Taylor 2019-12-20 20:21:29 -08:00
parent 80de90b1bb
commit 98fbdf77cb
2 changed files with 39 additions and 1 deletions

View File

@ -1,5 +1,6 @@
import flask
import settings
import traceback
yt_app = flask.Flask(__name__)
yt_app.url_map.strict_slashes = False
@ -30,3 +31,7 @@ def commatize(num):
if isinstance(num, str):
num = int(num)
return '{:,}'.format(num)
@yt_app.errorhandler(500)
def error_page(e):
return flask.render_template('error.html', traceback=traceback.format_exc()), 500

View File

@ -1,7 +1,40 @@
{% set page_title = 'Error' %}
{% extends "base.html" %}
{% block style %}
h1{
font-size: 32px;
font-weight: normal;
}
#error-box, #error-message{
background-color: var(--interface-color);
width: 80%;
margin: auto;
margin-top: 20px;
padding: 5px;
}
#error-box > div, #error-box > p, #error-box > h1{
white-space: pre-wrap;
margin-bottom: 10px;
}
.code-box{
padding: 5px;
border-style:solid;
border-width:1px;
border-radius:5px;
}
{% endblock style %}
{% block main %}
{{ error_message }}
{% if traceback %}
<div id="error-box">
<h1>500 Uncaught exception:</h1>
<div class="code-box"><code>{{ traceback }}</code></div>
<p>Please report this issue at <a href="https://github.com/user234683/youtube-local/issues" target="_blank">https://github.com/user234683/youtube-local/issues</a></p>
<p>Remember to include the traceback in your issue and redact any information in it you do not want to share</p>
</div>
{% else %}
<div id="error-message">{{ error_message }}</div>
{% endif %}
{% endblock %}