def _search(self, searchString=None, searchID=None, ipage=0, block_size=10, session=None): import arxiv ipage = int(ipage) block_size = int(block_size) if session is None: session = get_session() if searchID: # just get this ID return ParentCollection._search(self, searchID) if not searchString: s = view.report_error('empty searchString', 400, 'You did not provide a search string.') return rest.Response(s) elif arxiv.is_id_string(searchString): # just get this ID return ParentCollection._search(self, searchString) try: # get from existing query results queryResults = session['queryResults'] if queryResults.get_page(ipage, self.collectionArgs['uri'], searchString=searchString): return queryResults except KeyError: pass # no stored queryResults, so construct it pbl = view.PaperBlockLoader(arxiv.search_arxiv, uri=self.collectionArgs['uri']) queryResults = view.MultiplePages(pbl, block_size, ipage, self.collectionArgs['uri'], 'arXiv.org Search Results', searchString=searchString) session['queryResults'] = queryResults # keep for this user return queryResults
def _search(self, searchString=None, searchID=None, ipage=0, block_size=10, session=None): import arxiv ipage = int(ipage) block_size = int(block_size) if session is None: session = cherrypy.session if searchID: # just get this ID return ParentCollection._search(self, searchID) elif arxiv.is_id_string(searchString): # just get this ID return ParentCollection._search(self, searchString) try: # get from existing query results queryResults = session['queryResults'] if queryResults.get_page(ipage, self.collectionArgs['uri'], searchString=searchString): return queryResults except KeyError: pass # no stored queryResults, so construct it pbl = view.PaperBlockLoader(arxiv.search_arxiv, uri=self.collectionArgs['uri']) queryResults = view.MultiplePages(pbl, block_size, ipage, self.collectionArgs['uri'], searchString=searchString) session['queryResults'] = queryResults # keep for this user return queryResults