def query_items(self, event_types, free_events): assert self._parser, 'Calling before parse' if not event_types and not free_events: return self._items elif free_events and not event_types: return self._model2view(tool.free_events(self._parser.items)) stypes = u';'.join([et for et in event_types]) vkey = u' '.join([stypes, str(free_events)]) print 'vkey %s' % vkey.encode('ascii', 'replace') result = self._items_view.get(vkey, None) if not result: items = tool.search(self._parser, event_types) if free_events: items = tool.free_events(items) result = self._model2view(items) self._items_view[vkey] = result return result
if __name__ == '__main__': ## p = _StripHTMLParser() ## result = p.strip(u"""<div> ##<img src="http://example.com/img.jpg"/> ##<h1>ORC</h1> ##<br /> ##<span>0123456789</span><span>ABCDEFGHIJ</span></div>""", 10) ## print result ## sys.exit(0) data = tool.read_data('http://www.itsatrip.org/api/xmlfeed.ashx') p = Parser() p.parse(data) print u'Events count: %s' % len(p.events) #result = tool.search(p, [u'Art, History & Museums']) result = tool.free_events(p.items) print 'len(result):%s' % len(result) i = 0 for item in result: id, name = item.id, item.name.encode('ascii', 'replace') print 'id:%s name:%s' % (id, name) desc = item.description.encode('ascii', 'replace') summary = item.summary.encode('ascii', 'replace') print 'description(%s):%s' % (len(desc), desc) print 'summary(%s):%s' % (len(summary), summary) i += 1 if i > 0: break ## for i in p.items: ## name, description = (i.name.encode('ascii', 'replace'), ## i.description.encode('ascii', 'replace'))