From 1f16ffc91e72a133f1ee6c4420a162976eb68b10 Mon Sep 17 00:00:00 2001 From: gauthiier Date: Wed, 8 Nov 2017 11:48:28 +0100 Subject: [PATCH] fixed routes w/ search module --- search/archive.py | 2 +- www-serve.py | 2 +- www/archives.py | 27 ++++++++++++++-------- www/routes.py | 58 ++++++++++++++++++++++++----------------------- 4 files changed, 49 insertions(+), 40 deletions(-) diff --git a/search/archive.py b/search/archive.py index e6b18b7..8ce64df 100644 --- a/search/archive.py +++ b/search/archive.py @@ -34,7 +34,7 @@ class Archive(): with open(file_path) as fdata: self.archive[label] = json.load(fdata) - self.loaded = True + self.loaded = True def search_message(self, keyword, msg, index_str, results, field='content'): diff --git a/www-serve.py b/www-serve.py index 84d6125..d919ffc 100644 --- a/www-serve.py +++ b/www-serve.py @@ -1,2 +1,2 @@ from www import app -#app.run(debug=True, use_reloader=False) +app.run(debug=True, use_reloader=False) diff --git a/www/archives.py b/www/archives.py index e149602..8ff9826 100644 --- a/www/archives.py +++ b/www/archives.py @@ -1,4 +1,5 @@ import logging, os, json +import search.archive class Singleton(type): _instances = {} @@ -45,29 +46,35 @@ class Archives(metaclass=Singleton): logging.info("loading " + a) - archive_path = os.path.join(self.archives_dir, a) - self.data[a] = self.load_archive(archive_path) + # archive_path = os.path.join(self.archives_dir, a) + self.data[a] = self.load_archive(self.archives_dir, a) logging.info("done.") self.loaded = True - def load_archive(self, archive_dir): + def load_archive(self, archive_dir, archive_name): if not os.path.isdir(archive_dir): logging.error("Archives:: the path - " + archive_dir + " - is not a valid directory. Aborting.") return - files = [f for f in os.listdir(archive_dir) if f.endswith('.json')] + archive = search.archive.Archive(archive_dir) + archive.load(archive_name) + return archive - arch = {} - for f in files: - file_path = os.path.join(archive_dir, f) - with open(file_path) as fdata: - arch[f.replace('.json', '')] = json.load(fdata) + # # -- shoudl use Archive in searh module here.... - return arch + # files = [f for f in os.listdir(archive_dir) if f.endswith('.json')] + + # arch = {} + # for f in files: + # file_path = os.path.join(archive_dir, f) + # with open(file_path) as fdata: + # arch[f.replace('.json', '')] = json.load(fdata) + + # return arch diff --git a/www/routes.py b/www/routes.py index ee6969f..257d7e4 100644 --- a/www/routes.py +++ b/www/routes.py @@ -16,35 +16,35 @@ def index(): k = archives_data.keys() return render_template("index.html", archives=k) -def get_key(kv_tuple): +# def get_key(kv_tuple): - k = kv_tuple[0] +# k = kv_tuple[0] - # k is of the form "Month_Year" - ex.: "January_2001" - try: - return datetime.strptime(k, "%B_%Y") - except Exception: - pass +# # k is of the form "Month_Year" - ex.: "January_2001" +# try: +# return datetime.strptime(k, "%B_%Y") +# except Exception: +# pass - # k is of the form "Month(abv)_Year(abv)" - ex.: "Jan_01" - try: - return datetime.strptime(k, "%b_%y") - except Exception: - pass +# # k is of the form "Month(abv)_Year(abv)" - ex.: "Jan_01" +# try: +# return datetime.strptime(k, "%b_%y") +# except Exception: +# pass - # k is of the form "Year" - ex.: "2001" - try: - return datetime.strptime(k, "%Y") - except Exception: - pass +# # k is of the form "Year" - ex.: "2001" +# try: +# return datetime.strptime(k, "%Y") +# except Exception: +# pass - return None +# return None @app.route('/') def get_list(list): if list in archives_data: d = [] - for k, v in sorted(archives_data[list].items(), key=get_key, reverse=True): + for k, v in sorted(archives_data[list].archive.items(), key=search.archive.get_key, reverse=True): d.append({"name": k, "url": v['url'], "nbr_threads": len(v['threads'])}) return render_template("list.html", list_name=list, list=d) @@ -58,8 +58,8 @@ def get_sublist(list, sublist): print(sublist) sublist = sublist.replace(' ', '_') - if list in archives_data and sublist in archives_data[list]: - return render_template("threads.html", sublist_name=sublist, threads=archives_data[list][sublist]['threads']) + if list in archives_data and sublist in archives_data[list].archive: + return render_template("threads.html", sublist_name=sublist, threads=archives_data[list].archive[sublist]['threads']) else: return 'na na' @@ -68,8 +68,8 @@ def get_message(list, sublist, index): sublist = sublist.replace(' ', '_') index = int(index) - if list in archives_data and sublist in archives_data[list] and index < len(archives_data[list][sublist]['threads']): - return render_template("message.html", message=archives_data[list][sublist]['threads'][index]) + if list in archives_data and sublist in archives_data[list].archive and index < len(archives_data[list].archive[sublist]['threads']): + return render_template("message.html", message=archives_data[list].archive[sublist]['threads'][index]) else: 'non non' @@ -84,8 +84,8 @@ def get_follow_ups(list, sublist, index, follow_ups): for u in ups: follow.append(int(u)) - if list in archives_data and sublist in archives_data[list] and index < len(archives_data[list][sublist]['threads']): - message = archives_data[list][sublist]['threads'][index] + if list in archives_data and sublist in archives_data[list].archive and index < len(archives_data[list].archive[sublist]['threads']): + message = archives_data[list].archive[sublist]['threads'][index] for f in follow: message = message['follow-up'][f] return render_template("message.html", message=message) @@ -140,10 +140,12 @@ def searh(): logging.info("search keyword = " + k_arg) for l in lists: + # this makes no sense... - a = search.archive.Archive() - a.load(l) - results.append(a.search(keyword=k_arg, field=f_arg)) + # a = search.archive.Archive() + # a.load(l) + + results.append(archives_data[l].search(keyword=k_arg, field=f_arg)) ## -- sort results? search_results = sorted(results, key=get_result_key)