]> git.ipfire.org Git - ipfire.org.git/blob - www/webapp/__init__.py
1a8561641b9b93f8e32fb87eb29e2cee73d708b8
[ipfire.org.git] / www / webapp / __init__.py
1 #/usr/bin/python
2
3 import os.path
4
5 import tornado.locale
6 import tornado.options
7 import tornado.web
8
9 from .handlers import *
10 from .ui_modules import *
11
12 BASEDIR = os.path.join(os.path.dirname(__file__), "..")
13
14 tornado.locale.load_translations(os.path.join(BASEDIR, "translations"))
15 tornado.options.enable_pretty_logging()
16
17 class Application(tornado.web.Application):
18 def __init__(self):
19 settings = dict(
20 cookie_secret = "aXBmaXJlY29va2llc2VjcmV0Cg==",
21 #debug = True,
22 gzip = True,
23 template_path = os.path.join(BASEDIR, "templates"),
24 ui_modules = {
25 "Build" : BuildModule,
26 "Menu" : MenuModule,
27 "MenuItem" : MenuItemModule,
28 "NewsItem" : NewsItemModule,
29 "ReleaseItem" : ReleaseItemModule,
30 "SidebarBanner" : SidebarBannerModule,
31 "SidebarItem" : SidebarItemModule,
32 "SidebarRelease" : SidebarReleaseModule,
33 },
34 xsrf_cookies = True,
35 )
36
37 tornado.web.Application.__init__(self, **settings)
38
39 self.settings["static_path"] = static_path = os.path.join(BASEDIR, "static")
40 static_handlers = [
41 (r"/static/(.*)", tornado.web.StaticFileHandler, dict(path = static_path)),
42 (r"/(favicon\.ico)", tornado.web.StaticFileHandler, dict(path = static_path)),
43 (r"/(robots\.txt)", tornado.web.StaticFileHandler, dict(path = static_path)),
44 ]
45
46 self.add_handlers(r"www\.ipfire\.org", [
47 # Entry sites that lead the user to index
48 (r"/", MainHandler),
49 (r"/[A-Za-z]{2}/?", MainHandler),
50 #
51 (r"/[A-Za-z]{2}/index", IndexHandler),
52 (r"/[A-Za-z]{2}/news", NewsHandler),
53 (r"/[A-Za-z]{2}/builds", BuildHandler),
54 (r"/[A-Za-z]{2}/translations?", TranslationHandler),
55 # Download sites
56 (r"/[A-Za-z]{2}/downloads?", DownloadHandler),
57 (r"/[A-Za-z]{2}/downloads?/all", DownloadAllHandler),
58 (r"/[A-Za-z]{2}/downloads?/development", DownloadDevelopmentHandler),
59 (r"/[A-Za-z]{2}/downloads?/torrents", DownloadTorrentHandler),
60 # API
61 (r"/api/cluster_info", ApiClusterInfoHandler),
62 # Always the last rule
63 (r"/[A-Za-z]{2}/(.*)", StaticHandler),
64 ] + static_handlers)
65
66 # download.ipfire.org
67 self.add_handlers(r"download\.ipfire\.org", [
68 (r"/", MainHandler),
69 (r"/[A-Za-z]{2}/index", DownloadHandler),
70 ] + static_handlers)
71
72 # source.ipfire.org
73 self.add_handlers(r"source\.ipfire\.org", [
74 (r"/", MainHandler),
75 # (r"/[A-Za-z]{2}/index", SourceHandler),
76 ] + static_handlers)
77
78 # torrent.ipfire.org
79 self.add_handlers(r"torrent\.ipfire\.org", [
80 (r"/", MainHandler),
81 (r"/[A-Za-z]{2}/index", DownloadTorrentHandler),
82 ] + static_handlers)
83
84 # tracker.ipfire.org
85 self.add_handlers(r"tracker\.ipfire\.org", [
86 (r"/", MainHandler),
87 (r"/[A-Za-z]{2}/index", DownloadTorrentHandler),
88 ] + static_handlers)
89
90 # ipfire.org
91 self.add_handlers(r"ipfire\.org", [
92 (r".*", tornado.web.RedirectHandler, { "url" : "http://www.ipfire.org" })
93 ])