diff --git a/search/archive.py b/search/archive.py index 9f333d9..e6b18b7 100644 --- a/search/archive.py +++ b/search/archive.py @@ -39,7 +39,7 @@ class Archive(): def search_message(self, keyword, msg, index_str, results, field='content'): nbr_hits = 0 - if msg[field].find(keyword) > 0: + if msg[field] is not None and msg[field].lower().find(keyword.lower()) > 0: nbr_hits += 1 results.append({ "index_str": index_str, "subject": msg['subject'], "date": msg['date'], "author_name": msg['author_name'], "url": msg['url'] }) diff --git a/www/routes.py b/www/routes.py index 9212258..9db53c6 100644 --- a/www/routes.py +++ b/www/routes.py @@ -90,11 +90,12 @@ def searh(): if len(request.args) < 1: k = archives.archives_data.keys() - return render_template("search.html", archives=k) + return render_template("search.html", archives=k, fields=['content', 'from(name)', 'from(email)']) k_arg = request.args.get('keyword') l_arg = request.args.get('list') sl_arg = request.args.get('sublist') + f_arg = request.args.get('field') if k_arg is None or k_arg.strip() == '': return "no keyword..." @@ -109,6 +110,11 @@ def searh(): if not sl_arg in archives.archives_data[l]: return "sublist '" + sl_arg + "' does not exist in list '" + l_arg + "'" + if f_arg == "from(name)": + f_arg = 'author_name' + elif f_arg == "from(email)": + f_arg = 'from' + lists = [] if l_arg == "all": for k in archives.archives_data.keys(): @@ -118,15 +124,16 @@ def searh(): ################################ ## - ## need to cache all the below?? + ## need to cache all the below ## ################################ results = [] for l in lists: + # this makes no sense... a = search.archive.Archive() a.load(l) - results.append(a.search(k_arg)) + results.append(a.search(keyword=k_arg, field=f_arg)) ## -- sort results? search_results = sorted(results, key=get_result_key) diff --git a/www/static/search.js b/www/static/search.js index 437ca59..fc23154 100644 --- a/www/static/search.js +++ b/www/static/search.js @@ -9,7 +9,7 @@ $(document).ready(function(){ $('#results').empty(); $('#loading').show() - $.get('/search?'+args, function(data) { + $.get('/search?'+ args, function(data) { $('#loading').hide() console.log(data); // $('#graph').empty(); diff --git a/www/templates/search.html b/www/templates/search.html index 472ba68..c5b5715 100644 --- a/www/templates/search.html +++ b/www/templates/search.html @@ -15,6 +15,11 @@ {% endfor %} +