From 173c6ba821321245d8acfef5d86bb2b251c1886e Mon Sep 17 00:00:00 2001 From: neon_arch Date: Sat, 23 Sep 2023 12:50:36 +0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20code=20to=20handle=20?= =?UTF-8?q?aggregation=20when=20no=20engines=20are=20selected=20(#227)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/routes/search.rs | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/server/routes/search.rs b/src/server/routes/search.rs index dc327d6..e46d30c 100644 --- a/src/server/routes/search.rs +++ b/src/server/routes/search.rs @@ -195,16 +195,26 @@ async fn results( .filter_map(|name| EngineHandler::new(name)) .collect(); - aggregate( - query, - page, - config.aggregator.random_delay, - config.debug, - &engines, - config.request_timeout, - safe_search, - ) - .await? + match engines.is_empty() { + false => { + aggregate( + query, + page, + config.aggregator.random_delay, + config.debug, + &engines, + config.request_timeout, + safe_search, + ) + .await? + } + true => { + let mut search_results = SearchResults::default(); + search_results.set_no_engines_selected(); + search_results.set_page_query(query); + search_results + } + } } None => { aggregate( @@ -219,7 +229,10 @@ async fn results( .await? } }; - if results.engine_errors_info().is_empty() && results.results().is_empty() { + if results.engine_errors_info().is_empty() + && results.results().is_empty() + && !results.no_engines_selected() + { results.set_filtered(); } results.add_style(&config.style);