]>
Commit | Line | Data |
---|---|---|
940227cb MT |
1 | #!/usr/bin/python |
2 | ||
3 | import random | |
4 | ||
5 | import tornado.web | |
6 | ||
7 | from handlers_base import * | |
8 | ||
9 | class DownloadsIndexHandler(BaseHandler): | |
10 | def get(self): | |
11 | self.render("downloads-index.html", release=self.releases.get_latest()) | |
12 | ||
13 | ||
14 | class DownloadsReleaseHandler(BaseHandler): | |
15 | def get(self, release): | |
16 | release = self.releases.get_by_id(release) | |
17 | if not release: | |
18 | raise tornado.web.HTTPError(404) | |
19 | ||
20 | self.render("downloads-item.html", item=release) | |
21 | ||
22 | ||
23 | class DownloadsLatestHandler(BaseHandler): | |
24 | def get(self): | |
25 | release = self.releases.get_latest() | |
26 | if not release: | |
27 | raise tornado.web.HTTPError(404) | |
28 | ||
29 | self.render("downloads-item.html", item=release) | |
30 | ||
31 | ||
32 | class DownloadsOlderHandler(BaseHandler): | |
33 | def get(self): | |
34 | releases = self.releases.get_stable() | |
35 | ||
36 | # Drop the latest release | |
37 | if releases: | |
38 | releases = releases[1:] | |
39 | ||
40 | self.render("downloads-older.html", releases=releases) | |
41 | ||
42 | ||
43 | class DownloadsDevelopmentHandler(BaseHandler): | |
44 | def get(self): | |
45 | releases = self.releases.get_unstable() | |
46 | ||
47 | self.render("downloads-development.html", releases=releases) | |
48 | ||
49 | ||
50 | class DownloadHandler(BaseHandler): | |
51 | def get(self): | |
52 | self.render("downloads.html", release=self.releases.get_latest()) | |
53 | ||
54 | ||
55 | class DownloadAllHandler(BaseHandler): | |
56 | def get(self): | |
57 | self.render("downloads-all.html", | |
58 | releases=self.releases.get_stable()) | |
59 | ||
60 | ||
61 | class DownloadDevelopmentHandler(BaseHandler): | |
62 | def get(self): | |
63 | self.render("downloads-development.html", | |
64 | releases=self.releases.get_unstable()) | |
65 | ||
66 | ||
67 | class DownloadFileHandler(BaseHandler): | |
68 | def get(self, filename): | |
69 | mirrors = self.mirrors.get_with_file(filename) | |
70 | ||
71 | # Choose a random one | |
72 | # XXX need better metric here | |
73 | mirror = random.choice(mirrors) | |
74 | ||
75 | self.redirect(mirror.url + filename) |