on master help sign in
[mod][fix] use the average of results number ++ do not display smaller result number than the actual result count - closes #600
commit485da54961d3cdbc4e3fd33fab90fea6407932ea authorAdam Tauber <asciimoo@gmail.com> dateSat 16 Jul 2016, 21:37 (10 years ago) parent9393887
2 files changed+15−5
searx/results.py+8−2 searx/webapp.py+7−3
searx/results.py+8−2
@@ -100,7 +100,7 @@ class ResultContainer(object):
100100 self._infobox_ids = {}
101101 self.suggestions = set()
102102 self.answers = set()
103− self.number_of_results = 0
103+ self._number_of_results = []
104104
105105 def extend(self, engine_name, results):
106106 for result in list(results):
@@ -114,7 +114,7 @@ class ResultContainer(object):
114114 self._merge_infobox(result)
115115 results.remove(result)
116116 elif 'number_of_results' in result:
117− self.number_of_results = max(self.number_of_results, result['number_of_results'])
117+ self._number_of_results.append(result['number_of_results'])
118118 results.remove(result)
119119
120120 with RLock():
@@ -253,3 +253,9 @@ class ResultContainer(object):
253253
254254 def results_length(self):
255255 return len(self._merged_results)
256+
257+ def results_number(self):
258+ resultnum_sum = sum(self._number_of_results)
259+ if not resultnum_sum or not self._number_of_results:
260+ return 0
261+ return resultnum_sum / len(self._number_of_results)
searx/webapp.py+7−3
@@ -418,9 +418,13 @@ def index():
418418 else:
419419 result['publishedDate'] = format_date(result['publishedDate'])
420420
421+ number_of_results = search.result_container.results_number()
422+ if number_of_results < search.result_container.results_length():
423+ number_of_results = 0
424+
421425 if search.request_data.get('format') == 'json':
422426 return Response(json.dumps({'query': search.query,
423− 'number_of_results': search.result_container.number_of_results,
427+ 'number_of_results': number_of_results,
424428 'results': search.result_container.get_ordered_results()}),
425429 mimetype='application/json')
426430 elif search.request_data.get('format') == 'csv':
@@ -440,7 +444,7 @@ def index():
440444 'opensearch_response_rss.xml',
441445 results=search.result_container.get_ordered_results(),
442446 q=search.request_data['q'],
443− number_of_results=search.result_container.number_of_results,
447+ number_of_results=number_of_results,
444448 base_url=get_base_url()
445449 )
446450 return Response(response_rss, mimetype='text/xml')
@@ -451,7 +455,7 @@ def index():
451455 q=search.request_data['q'],
452456 selected_categories=search.categories,
453457 paging=search.paging,
454− number_of_results=format_decimal(search.result_container.number_of_results),
458+ number_of_results=format_decimal(number_of_results),
455459 pageno=search.pageno,
456460 base_url=get_base_url(),
457461 suggestions=search.result_container.suggestions,