]>
Commit | Line | Data |
---|---|---|
940227cb MT |
1 | #!/usr/bin/python |
2 | ||
3 | import socket | |
4 | import tornado.web | |
5 | ||
6 | from handlers_base import * | |
7 | ||
8 | class 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 | ||
25 | class 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 | ||
36 | class MirrorHandler(BaseHandler): | |
37 | def get(self): | |
38 | self.redirect("mirrors/all") | |
39 | ||
40 | ||
41 | class MirrorAllHandler(BaseHandler): | |
42 | def get(self): | |
43 | self.render("downloads-mirrors.html", mirrors=self.mirrors.list()) | |
44 | ||
45 | ||
46 | class MirrorDetailHandler(BaseHandler): | |
47 | def get(self, id): | |
48 | self.render("download-mirror-detail.html", mirror=self.mirrors.get(id)) |