From 0a7dfb1c934ce29c09df31d3462a5113027d0cf4 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Tue, 25 Jun 2013 07:14:33 +0200 Subject: Test if the database has not been indexed. --- source/pyAggr3g470r.py | 6 +++++- source/search.py | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/source/pyAggr3g470r.py b/source/pyAggr3g470r.py index 4f006571..07782924 100755 --- a/source/pyAggr3g470r.py +++ b/source/pyAggr3g470r.py @@ -48,6 +48,7 @@ import time import datetime from collections import defaultdict +from whoosh.index import EmptyIndexError import cherrypy from mako.template import Template @@ -170,7 +171,10 @@ class pyAggr3g470r(object): if param == "Feed": feed_id, _, query = value.partition(':') search_result = defaultdict(list) - results = search.search(param) + try: + results = search.search(param) + except EmptyIndexError as e: + return self.error('

The database has not been indexed.

') for result in results: article = self.mongo.get_articles(result[0], result[1]) search_result[result[0]].append(article) diff --git a/source/search.py b/source/search.py index 7eb4b065..e9e4c801 100644 --- a/source/search.py +++ b/source/search.py @@ -20,15 +20,16 @@ # along with this program. If not, see __author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.1 $" +__version__ = "$Revision: 0.2 $" __date__ = "$Date: 2013/06/24 $" -__revision__ = "$Date: 2013/06/24 $" +__revision__ = "$Date: 2013/06/25 $" __copyright__ = "Copyright (c) Cedric Bonhomme" __license__ = "GPLv3" import os from whoosh.index import create_in, open_dir +from whoosh.index import EmptyIndexError from whoosh.fields import * from whoosh.qparser import QueryParser @@ -67,7 +68,10 @@ def search(term): Search for `term` in the index. Returns a list of articles. """ - ix = open_dir(indexdir) + try: + ix = open_dir(indexdir) + except (EmptyIndexError, OSError) as e: + raise EmptyIndexError with ix.searcher() as searcher: query = QueryParser("content", ix.schema).parse(term) results = searcher.search(query, limit=None) -- cgit