]> git.ipfire.org Git - ipfire.org.git/commitdiff
Add compat handler for old download links.
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 14 Jan 2011 19:44:18 +0000 (20:44 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 14 Jan 2011 19:44:18 +0000 (20:44 +0100)
www/webapp/__init__.py
www/webapp/backend/mirrors.py
www/webapp/handlers_download.py

index d02ab0363dd9e306a005b82d402b74d85a794ffb..dff381951169d39ee6f4d030b143115f0a10e29f 100644 (file)
@@ -84,6 +84,7 @@ class Application(tornado.web.Application):
                        (r"/mirrors", tornado.web.RedirectHandler, { "url" : "http://mirrors.ipfire.org/" }),
                        (r"/source", tornado.web.RedirectHandler, { "url" : "http://source.ipfire.org/" }),
                ] + static_handlers + [
+                       (r"/(iso|torrent)/(.*)", DownloadCompatHandler),
                        (r"/(.*)", DownloadFileHandler),
                ])
 
index 415a9f1df10e6367facec94340f8fba6de0f5d0d..5b289b9fb26d19740437f8d1028271a47d9f413c 100644 (file)
@@ -60,6 +60,19 @@ class Mirrors(object):
                for mirror in mirrors:
                        yield self.get(mirror.id)
 
+       def get_all_files(self):
+               files = []
+
+               for mirror in self.list():
+                       if not mirror.state == "UP":
+                               continue
+
+                       for file in mirror.filelist:
+                               if not file in files:
+                                       files.append(file)
+
+               return files
+
 
 class Mirror(object):
        def __init__(self, id):
index e0ccd895c0bdacd3d13f4914384ff5b039f8d56e..d8b1dc3de6a44950cf9f5a0981ce13c9cf83aeaf 100644 (file)
@@ -86,3 +86,19 @@ class DownloadFileHandler(BaseHandler):
 
                self.mirrors.db.execute("INSERT INTO log_download(filename, mirror, country_code) VALUES(%s, %s, %s)",
                        filename, mirror.id, country_code)
+
+
+class DownloadCompatHandler(BaseHandler):
+       def get(self, path, url):
+               _filename = None
+
+               for filename in self.mirrors.get_all_files():
+                       if filename.endswith("/%s" % url):
+                               _filename = filename
+                               break
+
+               if not _filename:
+                       raise tornado.web.HTTPError(404)
+
+               self.redirect("/%s" % _filename)
+