summaryrefslogtreecommitdiff
path: root/controller.py
blob: 7de70f1f25bba1b6e7945d7f79d1a271a1c2e052 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from __future__ import with_statement

import web
from renderer import render

class Page:
    """
    All the general and simple pages.
    """
    def GET(self, name = '/'):
        if not name or name == '/': name = 'index'
        return render(name)

class Redirect:
    """
    Redirecting to another page.
    """

    redirects = {}
    with open("redirects") as f:
        for line in f:
            name, url = line.split()
            redirects[name.strip()] = url.strip()

    def GET(self, name):
        if name not in self.redirects:
            raise web.TempRedirect("/")
        else:
            raise web.Redirect(self.redirects[name], absolute = True)

def FourOhFour(page):
    """
    404 error page.
    """
    return web.notfound(render("404", level = "", page = page))