import simplejson
import tornado.httpserver
import tornado.locale
-import tornado.options
import tornado.web
+from tornado.options import options
+
import backend
from handlers import *
BASEDIR = os.path.join(os.path.dirname(__file__), "..")
-tornado.locale.load_translations(os.path.join(BASEDIR, "translations"))
+# Load translations.
+tornado.locale.load_gettext_translations(os.path.join(BASEDIR, "translations"), "webapp")
class Application(tornado.web.Application):
def __init__(self):
settings = dict(
cookie_secret = "aXBmaXJlY29va2llc2VjcmV0Cg==",
- debug = True,
+ debug = options.debug,
gzip = True,
login_url = "/login",
template_path = os.path.join(BASEDIR, "templates"),
ui_modules = {
+ "DownloadButton" : DownloadButtonModule,
"Menu" : MenuModule,
"MirrorItem" : MirrorItemModule,
+ "MirrorsTable" : MirrorsTableModule,
"NewsItem" : NewsItemModule,
"NewsLine" : NewsLineModule,
"PlanetEntry" : PlanetEntryModule,
"SidebarBanner" : SidebarBannerModule,
"SidebarRelease" : SidebarReleaseModule,
"StasyTable" : StasyTableModule,
+ "StasyCPUCoreTable" : StasyCPUCoreTableModule,
"StasyDeviceTable" : StasyDeviceTableModule,
+ "StasyGeoTable" : StasyGeoTableModule,
"TrackerPeerList": TrackerPeerListModule,
},
xsrf_cookies = True,
(r"/author/(.*)", NewsAuthorHandler),
# Download sites
- (r"/downloads?", DownloadHandler),
+ (r"/download", DownloadHandler),
+ (r"/downloads", tornado.web.RedirectHandler, { "url" : "/download" }),
+
+ # Handle old pages that have moved elsewhere
+ (r"/screenshots", tornado.web.RedirectHandler, { "url" : "/about" }),
+ (r"/about", tornado.web.RedirectHandler, { "url" : "/features" }),
+ (r"/support", tornado.web.RedirectHandler, { "url" : "/getinvolved" }),
+
+ (r"/donate", tornado.web.RedirectHandler, { "url" : "/donation" }),
# RSS feed
(r"/news.rss", RSSNewsHandler),
(r"/development", DownloadsDevelopmentHandler),
(r"/mirrors", tornado.web.RedirectHandler, { "url" : "http://mirrors.ipfire.org/" }),
(r"/source", tornado.web.RedirectHandler, { "url" : "http://source.ipfire.org/" }),
+ (r"/download-splash", DownloadSplashHandler),
] + static_handlers + [
+ (r"/(iso|torrent)/(.*)", DownloadCompatHandler),
(r"/(.*)", DownloadFileHandler),
])
] + static_handlers)
# stasy.ipfire.org
- self.add_handlers(r"(fireinfo|stasy)\.ipfire\.org", [
+ self.add_handlers(r"fireinfo\.ipfire\.org", [
(r"/", StasyIndexHandler),
(r"/profile/([a-z0-9]{40})", StasyProfileDetailHandler),
(r"/vendor/(pci|usb)/([0-9a-f]{4})", StasyStatsVendorDetail),
(r"/torrent/([0-9a-f]+)", TrackerDetailHandler),
] + static_handlers)
+ # boot.ipfire.org
+ BOOT_STATIC_PATH = os.path.join(self.settings["static_path"], "netboot")
+ self.add_handlers(r"boot\.ipfire\.org", [
+ (r"/", tornado.web.RedirectHandler, { "url" : "http://www.ipfire.org/download" }),
+
+ # Configurations
+ (r"/menu.gpxe", MenuGPXEHandler),
+ (r"/menu.cfg", MenuCfgHandler),
+ (r"/config/([0-9]+)/boot.gpxe", BootGPXEHandler),
+
+ # Static files
+ (r"/(boot.png|custom.gpxe|premenu.cfg|vesamenu.c32|menu.c32)",
+ tornado.web.StaticFileHandler, { "path" : BOOT_STATIC_PATH }),
+ ])
+
+ # nopaste.ipfire.org
+ self.add_handlers(r"nopaste\.ipfire\.org", [
+ (r"/", NopasteIndexHandler),
+ (r"/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})", NopasteEntryHandler),
+ ] + static_handlers)
+
# admin.ipfire.org
self.add_handlers(r"admin\.ipfire\.org", [
(r"/", AdminIndexHandler),
(r"/mirrors/edit/([0-9]+)", AdminMirrorsEditHandler),
(r"/mirrors/details/([0-9]+)", AdminMirrorsDetailsHandler),
(r"/mirrors/update", AdminMirrorsUpdateHandler),
+ # Fireinfo
+ (r"/fireinfo/stats", AdminFireinfoStatsHandler),
+ # Downloads
+ (r"/downloads", AdminDownloadsHandler),
+ (r"/downloads/mirrors", AdminDownloadsMirrorsHandler),
+ (r"/downloads/test", AdminDownloadsGraphHandler),
# API
(r"/api/planet/render", AdminApiPlanetRenderMarkupHandler)
] + static_handlers)