def GET(self, start): if not start: start = 0 start = int(start) members = self.collection.reload_members(start=start, limit=10) feed = self.collection.to_feed(members=members) attrs = {u'rel': u'first', u'type': u'application/atom+xml;type=feed', u'href': safe_url_join([self.collection.get_base_edit_uri(), u'paging'])} feed.feed.xml_append(feed.xml_create_element(qname(u"link", feed.feed.prefix), ns=feed.feed.namespaceURI, attributes=attrs)) if start > 10: attrs = {u'rel': u'previous', u'type': u'application/atom+xml;type=feed', u'href': safe_url_join([self.collection.get_base_edit_uri(), u'paging?start=%s' % unicode(start-10)])} feed.feed.xml_append(feed.xml_create_element(qname(u"link", feed.feed.prefix), ns=feed.feed.namespaceURI, attributes=attrs)) attrs = {u'rel': u'next', u'type': u'application/atom+xml;type=feed', u'href': safe_url_join([self.collection.get_base_edit_uri(), u'paging?start=%s' % unicode(start+10)])} feed.feed.xml_append(feed.xml_create_element(qname(u"link", feed.feed.prefix), ns=feed.feed.namespaceURI, attributes=attrs)) cherrypy.response.headers['etag'] = compute_etag_from_feed(feed) cherrypy.response.headers['content-type'] = 'application/atom+xml;type=feed' return feed.xml(indent=True)
def index(self, tag): res = self.cat_index.lookup(term=tag) if res: member_ids = [member_id for collection, member_id in res] members = self.collection.reload_members_from_list(member_ids) feed = self.collection.to_feed(members=members) cherrypy.response.headers['etag'] = compute_etag_from_feed(feed) cherrypy.response.headers['content-type'] = 'application/atom+xml;type=feed' return feed.xml(indent=True) return "No results"
def tag(self, value, feed=None): t = self.indexer.indexes["category_index"].lookup(term=value) items = self.indexer.to_dict(t) as_feed = feed feed = self.service.make_feed( items, entry_processor=transform_member_resource, title=u"Tag %s" % value, member_comparer=app_updated_comparer, ) params = {u"atom_feed_uri": u"/blog%s/feed" % unicode(cherrypy.request.path_info)} if as_feed == None: params[u"tag"] = value.decode("utf-8") return render_search_result(self.service.service, feed, params=params) else: feed = feed.xml_root A(u"georss", value=u"http://www.georss.org/georss", namespace=XMLNS_NS, prefix=XMLNS_PREFIX, parent=feed) A( u"geo", value=u"http://www.w3.org/2003/01/geo/wgs84_pos#", namespace=XMLNS_NS, prefix=XMLNS_PREFIX, parent=feed, ) # E(u'link', attributes={u'rel': u'self', u'type': u'application/atom+xml;type=feed', # u'href': params['atom_feed_uri']}, # namespace=feed.xml_ns, prefix=feed.xml_prefix) entries = feed.get_children("entry", feed.xml_ns) if entries: entry = entries[0] updated = feed.get_child("updated", feed.xml_ns) eupdated = entry.get_child("updated", feed.xml_ns) updated.xml_text = eupdated.xml_text cherrypy.response.headers["content-type"] = "application/atom+xml;type=feed" cherrypy.response.headers["ETag"] = compute_etag_from_feed(feed) return feed.xml() raise cherrypy.NotFound()
def atom(self): cherrypy.response.headers["content-type"] = "application/atom+xml;type=feed" feed = self.collection.feed_handler.public_feed.xml_root cherrypy.response.headers["ETag"] = compute_etag_from_feed(feed) return self.collection.feed_handler.public_xml()
def feed(self): collection_feed = self.collection.feed_handler.retrieve() cherrypy.response.headers['etag'] = compute_etag_from_feed(collection_feed) cherrypy.response.headers['content-type'] = 'application/atom+xml;type=feed' return self.collection.feed_handler.collection_xml()