aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/errormiddleware.py53
-rw-r--r--mediagoblin/templates/mediagoblin/500.html49
-rw-r--r--paste.ini12
-rw-r--r--setup.py3
4 files changed, 66 insertions, 51 deletions
diff --git a/mediagoblin/errormiddleware.py b/mediagoblin/errormiddleware.py
new file mode 100644
index 00000000..084b3684
--- /dev/null
+++ b/mediagoblin/errormiddleware.py
@@ -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)
diff --git a/mediagoblin/templates/mediagoblin/500.html b/mediagoblin/templates/mediagoblin/500.html
deleted file mode 100644
index 464630a7..00000000
--- a/mediagoblin/templates/mediagoblin/500.html
+++ /dev/null
@@ -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>
diff --git a/paste.ini b/paste.ini
index 73fbe8e8..fc459989 100644
--- a/paste.ini
+++ b/paste.ini
@@ -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
diff --git a/setup.py b/setup.py
index 40715dd0..d6ef584b 100644
--- a/setup.py
+++ b/setup.py
@@ -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