コード例 #1
0
ファイル: navig.py プロジェクト: xxjeng/nuxleus
    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)
コード例 #2
0
ファイル: navig.py プロジェクト: xxjeng/nuxleus
    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()