diff --git a/app.py b/app.py index e295fb7..ba6ad39 100644 --- a/app.py +++ b/app.py @@ -231,9 +231,13 @@ def search(): per_page = int(per_page) if per_page.isdigit() else "50" per_page = per_page if per_page in config.RESULTS_PER_PAGE else 50 + extensions = request.args.get("ext") if "ext" in request.args else "" + extensions = [ext.strip().strip(".") for ext in extensions.split(",")] if extensions else [] + print(extensions) + if len(q) >= 3: try: - hits = searchEngine.search(q, page, per_page, sort_order) + hits = searchEngine.search(q, page, per_page, sort_order, extensions) hits = db.join_website_on_search_result(hits) except InvalidQueryException as e: flash("Invalid query: " + str(e), "warning") @@ -243,7 +247,8 @@ def search(): return render_template("search.html", results=hits, q=q, p=page, sort_order=sort_order, - per_page=per_page, results_set=config.RESULTS_PER_PAGE) + per_page=per_page, results_set=config.RESULTS_PER_PAGE, + extensions=",".join(extensions)) @app.route("/contribute") diff --git a/search/search.py b/search/search.py index 81d5e26..477ab09 100644 --- a/search/search.py +++ b/search/search.py @@ -16,7 +16,7 @@ class SearchEngine: def import_json(self, in_str: str, website_id: int): raise NotImplementedError - def search(self, query, page, per_page, sort_order) -> {}: + def search(self, query, page, per_page, sort_order, extension) -> {}: raise NotImplementedError def reset(self): @@ -142,9 +142,11 @@ class ElasticSearchEngine(SearchEngine): action_string = '{"index":{}}\n' return "\n".join("".join([action_string, ujson.dumps(doc)]) for doc in docs) - def search(self, query, page, per_page, sort_order) -> {}: + def search(self, query, page, per_page, sort_order, extensions) -> {}: filters = [] + if extensions: + filters.append({"terms": {"ext": extensions}}) sort_by = ElasticSearchEngine.SORT_ORDERS.get(sort_order, []) page = self.es.search(body={ diff --git a/static/css/main.css b/static/css/main.css index bafa87a..70be53e 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -169,6 +169,12 @@ a:hover { color: inherit; } +.input-group-text { + border: 1px solid #282b30; + background-color: #686d75; + color: #e9ecef; +} + .nav-tabs .nav-link { border-color: transparent; } diff --git a/templates/search.html b/templates/search.html index 708218d..472da84 100644 --- a/templates/search.html +++ b/templates/search.html @@ -12,9 +12,12 @@