]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - www/webapp/handlers_mirrors.py
wishlist: Make the reason for transfer things more clear.
[people/shoehn/ipfire.org.git] / www / webapp / handlers_mirrors.py
CommitLineData
940227cb
MT
1#!/usr/bin/python
2
3import socket
4import tornado.web
5
6from handlers_base import *
7
8class MirrorIndexHandler(BaseHandler):
9 def get(self):
0673d1b0 10 ip_addr = self.get_argument("addr", self.request.remote_ip)
940227cb 11
0673d1b0
MT
12 # Get a list of all mirrors.
13 all_mirrors = self.mirrors.get_all()
14
15 # Choose the preferred ones by their location.
16 preferred_mirrors = all_mirrors.get_for_location(ip_addr)
17
18 # Remove the preferred ones from the list of the rest.
19 other_mirrors = all_mirrors - preferred_mirrors
20
21 self.render("mirrors.html",
22 preferred_mirrors=preferred_mirrors, other_mirrors=other_mirrors)
940227cb
MT
23
24
25class MirrorItemHandler(BaseHandler):
26 def get(self, id):
0673d1b0
MT
27 _ = self.locale.translate
28
940227cb
MT
29 mirror = self.mirrors.get(id)
30 if not mirror:
31 raise tornado.web.HTTPError(404)
32
940227cb
MT
33 self.render("mirrors-item.html", item=mirror)
34
35
36class MirrorHandler(BaseHandler):
37 def get(self):
38 self.redirect("mirrors/all")
39
40
41class MirrorAllHandler(BaseHandler):
42 def get(self):
43 self.render("downloads-mirrors.html", mirrors=self.mirrors.list())
44
45
46class MirrorDetailHandler(BaseHandler):
47 def get(self, id):
48 self.render("download-mirror-detail.html", mirror=self.mirrors.get(id))