Mercurial > libervia-web
annotate src/pages/common/blog/atom.xml/page_meta.py @ 1022:6dc90f109e57
pages (common/blog/atom.xml): use cache
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 21 Jan 2018 13:17:49 +0100 |
parents | 8e7897b1008a |
children | 6c98c0baa038 |
rev | line source |
---|---|
1017
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python2.7 |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 from libervia.server.constants import Const as C |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 from twisted.internet import defer |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 from sat.tools.common import uri |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 import time |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 name = u"blog_feed_atom" |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 access = C.PAGES_ACCESS_PUBLIC |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 template = u"blog/atom.xml" |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 @defer.inlineCallbacks |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 def prepare_render(self, request): |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 request.setHeader('Content-Type', 'application/atom+xml; charset=utf-8') |
1022
6dc90f109e57
pages (common/blog/atom.xml): use cache
Goffi <goffi@goffi.org>
parents:
1017
diff
changeset
|
17 data = self.getRData(request) |
6dc90f109e57
pages (common/blog/atom.xml): use cache
Goffi <goffi@goffi.org>
parents:
1017
diff
changeset
|
18 service, node = data[u'service'], data.get(u'node') |
6dc90f109e57
pages (common/blog/atom.xml): use cache
Goffi <goffi@goffi.org>
parents:
1017
diff
changeset
|
19 self.checkCache(request, C.CACHE_PUBSUB, service=service, node=node, short='microblog') |
6dc90f109e57
pages (common/blog/atom.xml): use cache
Goffi <goffi@goffi.org>
parents:
1017
diff
changeset
|
20 data['show_comments'] = False |
1017
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 template_data = request.template_data |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 blog_page = self.getPageByName(u'blog') |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 yield blog_page.prepare_render(self, request) |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 items = data[u'items'] |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 template_data[u'request_uri'] = self.host.getExtBaseURL(request, request.uri.decode('utf-8')) |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 template_data[u'xmpp_uri'] = uri.buildXMPPUri(u'pubsub', |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 subtype=u'microblog', |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 path=service.full(), |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 node=node) |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 blog_view = self.getPageByName(u'blog_view') |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 template_data[u'http_uri'] = self.host.getExtBaseURL(request, blog_view.getURL(service.full(), node)) |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 if items: |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 template_data[u'updated'] = items[0].updated |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 else: |
8e7897b1008a
pages (blog/atom.xml, u/atom.xml): Atom feed implementation:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 template_data[u'updated'] = time.time() |