]> git.ipfire.org Git - ipfire.org.git/blob - webapp/handlers_planet.py
Move everything to the root of the repository.
[ipfire.org.git] / webapp / handlers_planet.py
1 #!/usr/bin/python
2
3 import tornado.web
4
5 from handlers_base import *
6
7 import backend
8
9 from backend.databases import Databases
10
11 class PlanetBaseHandler(BaseHandler):
12 @property
13 def db(self):
14 return Databases().webapp
15
16 @property
17 def planet(self):
18 return backend.Planet()
19
20
21 class PlanetMainHandler(PlanetBaseHandler):
22 rss_url = "/rss"
23
24 def get(self):
25 offset = int(self.get_argument("offset", 0))
26 limit = int(self.get_argument("limit", 4))
27
28 entries = self.planet.get_entries(offset=offset, limit=limit)
29
30 self.render("planet-main.html", entries=entries,
31 authors=self.planet.get_authors(),
32 offset=offset + limit, limit=limit)
33
34
35 class PlanetUserHandler(PlanetBaseHandler):
36 def get(self, author):
37 author = self.accounts.search(author)
38 if not author:
39 raise tornado.web.HTTPError(404, "User is unknown")
40
41 offset = int(self.get_argument("offset", 0))
42 limit = int(self.get_argument("limit", 4))
43
44 entries = self.planet.get_entries_by_author(author.uid,
45 offset=offset, limit=limit)
46
47 self.render("planet-user.html", author=author, entries=entries,
48 offset=offset + limit, limit=limit, rss_url="/user/%s/rss" % author.uid)
49
50
51 class PlanetPostingHandler(PlanetBaseHandler):
52 def get(self, slug):
53 entry = self.planet.get_entry_by_slug(slug)
54
55 if not entry:
56 raise tornado.web.HTTPError(404)
57
58 self.render("planet-posting.html",
59 author=entry.author, entry=entry)