Mercurial > libervia-web
annotate src/pages/common/blog/atom.xml/page_meta.py @ 1037:dc6c8c4d8ff6
server: redirection rework:
- redirection parsing is now launched after LiberviaPages are imported, this way the pages are accessible and their methods are usable
- inv_redirections attribute in LiberviaRootResource keep a map from new URL to old URL, allowing to check if a redirected path can lead to the same page
- LiberviaPage methods are used to retrieve their URL
- fixed remaining args when going to a redirected page
- new checkRedirection method to see if a redirection can lead to the same URL
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 24 Jan 2018 09:57:38 +0100 |
parents | 6dc90f109e57 |
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() |