Slightly wrapping paste error middleware and turning it on

Now we can show a nice "borked goblin" error :)
This commit is contained in:
Christopher Allan Webber 2011-08-21 00:09:29 -05:00
parent a6cf463515
commit 72ae87af4a
4 changed files with 66 additions and 51 deletions

View File

@ -0,0 +1,53 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011 Free Software Foundation, Inc
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from paste.exceptions.errormiddleware import make_error_middleware
MGOBLIN_ERROR_MESSAGE = """\
<div style="text-align:center;font-family: monospace">
<h1>YEOWCH... that's an error!</h1>
<pre>
.-------------------------.
| __ _ |
| -, \_,------,_// |
| <\ ,-- --.\ |
| / ( X) (X ) |
| ' '--, ,--'\ |
| / \ -v-v-u-v / |
| . '.__.--__'.\ |
| / ',___/ / \__/' |
| | | ,'\_'/, || |
| \_| | | | | || |
| W',_ ||| |||_'' |
| | '------'| |
| |__| |_|_ |
| ,,,-' '-,,, |
'-------------------------'
</pre>
<p>Something bad happened, and things broke.</p>
<p>If this is not your website, you may want to alert the owner.</p>
<br><br>
<p>
Powered... er broken... by
<a href="http://www.mediagoblin.org">MediaGoblin</a>,
a <a href="http://www.gnu.org">GNU Project</a>.
</p>
</div>"""
def mgoblin_error_middleware(app, global_conf, **kw):
kw['error_message'] = MGOBLIN_ERROR_MESSAGE
return make_error_middleware(app, global_conf, **kw)

View File

@ -1,49 +0,0 @@
<!--
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011 Free Software Foundation, Inc
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>500 error! GNU MediaGoblin is sorry...</title>
</head>
<body style="text-align:center;font-family: monospace">
<h1>YEOWCH... that's an error!</h1>
<p>
.-------------------------.<br>
|&nbsp;&nbsp;&nbsp;&nbsp; __&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;-,&nbsp;\_,------,_//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\&nbsp;&nbsp;,--&nbsp;&nbsp;&nbsp;--.\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;(&nbsp;&nbsp;X)&nbsp;(X&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;'--,&nbsp;,--'\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;\&nbsp;-v-v-u-v&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;'.__.--__'.\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;',___/&nbsp;/&nbsp;\__/'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;|&nbsp;&nbsp;&nbsp;,'\_'/,&nbsp;||&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;\_|&nbsp;&nbsp;&nbsp;|&nbsp;|&nbsp;|&nbsp;|&nbsp;||&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;W',_&nbsp;|||&nbsp;|||_''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;'------'|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|__|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_|_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,,,-'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'-,,,&nbsp;&nbsp;&nbsp;&nbsp; |<br>
'-------------------------'<br>
</p>
<p>Something bad happened, and things broke.</p>
<p>If this is not your website, you may want to alert the owner.</p>
<br><br>
<p>Powered... er broken... by <a href="http://www.mediagoblin.org">MediaGoblin</a>, a <a href="http://www.gnu.org">GNU Project</a>.</p>
</body>
</html>

View File

@ -1,7 +1,11 @@
[DEFAULT]
debug = true
# Set to true to enable web-based debugging messages and etc.
debug = false
[composite:main]
[pipeline:main]
pipeline = errors routing
[composite:routing]
use = egg:Paste#urlmap
/ = mediagoblin
/mgoblin_media/ = publicstore_serve
@ -28,6 +32,10 @@ beaker.session.key = mediagoblin
beaker.session.data_dir = %(here)s/user_dev/beaker/sessions/data
beaker.session.lock_dir = %(here)s/user_dev/beaker/sessions/lock
[filter:errors]
use = egg:mediagoblin#errors
debug = false
[server:main]
use = egg:Paste#http
host = 127.0.0.1

View File

@ -58,6 +58,9 @@ setup(
[paste.app_factory]
app = mediagoblin.app:paste_app_factory
[paste.filter_app_factory]
errors = mediagoblin.errormiddleware:mgoblin_error_middleware
[zc.buildout]
make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs