From 492433abe865220c227e62cf12f3c93856432585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Wed, 25 Nov 2009 22:49:43 +0100 Subject: Initial Portato Website --- index.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 index.py (limited to 'index.py') diff --git a/index.py b/index.py new file mode 100755 index 0000000..09a24aa --- /dev/null +++ b/index.py @@ -0,0 +1,69 @@ +#!/usr/bin/python + +from __future__ import with_statement + +import os +import web +import mako +from mako.lookup import TemplateLookup + +from functools import partial + +import helper + +APPDIR = os.path.dirname(os.path.abspath(__file__)) + +def appdir (*args): + return os.path.join(APPDIR, *args) + +class Renderer: + def __init__ (self): + self.lookup = TemplateLookup(directories=[appdir('templates')], + module_directory = "/tmp/portato/", + input_encoding='utf-8', + output_encoding='utf-8') + + def render (self, tpl): + print tpl + try: + t = self.get_tpl(tpl) + except mako.exceptions.TopLevelLookupException, e: + raise web.webapi.notfound(e) + + return partial(t.render, w = web, h = helper) + + __call__ = render + + def get_tpl (self, tpl): + return self.lookup.get_template(self.get_tpl_name(tpl)) + + def get_tpl_name (self, tpl): + if not tpl.endswith(".mako"): + tpl = tpl+".mako" + + return os.path.join("pages", tpl) + +urls = ("/(.*)", "Handler") +app = web.application(urls, globals()) + +render = Renderer() + +class Handler: + def GET(self, name = '/'): + print "Test" + if not name or name == '/': name = 'index' + return render(name)(menulist = self.generate_menu_list()) + + def generate_menu_list (self): + menulist = [] + with open(appdir("templates", "menu.lst")) as menu: + for entry in menu: + entry = entry.strip() + menulist.append((entry, render.get_tpl(entry).uri)) + + return menulist + + +# web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr) +if __name__ == "__main__": + app.run() -- cgit v1.2.3