]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - webapp/handlers_planet.py
Rename German translation to "de" (was de_DE).
[people/shoehn/ipfire.org.git] / webapp / handlers_planet.py
CommitLineData
940227cb
MT
1#!/usr/bin/python
2
3import tornado.web
4
5from handlers_base import *
6
940227cb 7class PlanetBaseHandler(BaseHandler):
a6dc0bad 8 pass
940227cb
MT
9
10
11class PlanetMainHandler(PlanetBaseHandler):
bcc3ed4d
MT
12 rss_url = "/rss"
13
940227cb
MT
14 def get(self):
15 offset = int(self.get_argument("offset", 0))
16 limit = int(self.get_argument("limit", 4))
17
18 entries = self.planet.get_entries(offset=offset, limit=limit)
cc3b928d 19 years = self.planet.get_years()
940227cb 20
cc3b928d 21 self.render("planet/index.html", entries=entries, years=years,
940227cb
MT
22 offset=offset + limit, limit=limit)
23
24
25class PlanetUserHandler(PlanetBaseHandler):
26 def get(self, author):
27 author = self.accounts.search(author)
28 if not author:
29 raise tornado.web.HTTPError(404, "User is unknown")
30
31 offset = int(self.get_argument("offset", 0))
32 limit = int(self.get_argument("limit", 4))
33
34 entries = self.planet.get_entries_by_author(author.uid,
35 offset=offset, limit=limit)
36
55b162d6 37 self.render("planet/user.html", author=author, entries=entries,
bcc3ed4d 38 offset=offset + limit, limit=limit, rss_url="/user/%s/rss" % author.uid)
940227cb
MT
39
40
41class PlanetPostingHandler(PlanetBaseHandler):
42 def get(self, slug):
43 entry = self.planet.get_entry_by_slug(slug)
44
45 if not entry:
46 raise tornado.web.HTTPError(404)
47
55b162d6 48 self.render("planet/posting.html",
940227cb 49 author=entry.author, entry=entry)
2bdd073f
MT
50
51
52class PlanetSearchHandler(PlanetBaseHandler):
53 def get(self):
54 query = self.get_argument("q", "")
55
56 if query:
57 entries = self.planet.search(query)
58 else:
59 entries = []
60
61 self.render("planet/search.html", entries=entries, query=query)
cc3b928d
MT
62
63
64class PlanetYearHandler(PlanetBaseHandler):
65 def get(self, year):
66 entries = self.planet.get_entries_by_year(year)
67
68 months = {}
69 for entry in entries:
70 try:
71 months[entry.month].append(entry)
72 except KeyError:
73 months[entry.month] = [entry]
74
75 months = months.items()
76 months.sort(reverse=True)
77
78 self.render("planet/year.html", months=months, year=year)
a3e3c96d
MT
79
80
81class PlanetAPISearchAutocomplete(PlanetBaseHandler):
82 def get(self):
83 query = self.get_argument("q")
84 if not query:
85 raise tornado.web.HTTPError(400)
86
87 results = self.planet.search_autocomplete(query)
88
89 res = {
90 "query" : query,
91 "results" : results,
92 }
93 self.write(res)