def search(self, query): tokens = query.split(" ") s = Set() for token in tokens: t = self.indexer.indexes["category_index"].lookup(term=token) s |= t items = self.indexer.to_dict(s) feed = self.service.make_feed( items, entry_processor=transform_member_resource, title=u"Search Result", member_comparer=app_updated_comparer, ) return render_search_result(self.service.service, feed)
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()