Selaa lähdekoodia

[mod][fix] use the average of results number ++ do not display smaller result number than the actual result count - closes #600

Adam Tauber 8 vuotta sitten
vanhempi
commit
485da54961
2 muutettua tiedostoa jossa 15 lisäystä ja 5 poistoa
  1. 8
    2
      searx/results.py
  2. 7
    3
      searx/webapp.py

+ 8
- 2
searx/results.py Näytä tiedosto

100
         self._infobox_ids = {}
100
         self._infobox_ids = {}
101
         self.suggestions = set()
101
         self.suggestions = set()
102
         self.answers = set()
102
         self.answers = set()
103
-        self.number_of_results = 0
103
+        self._number_of_results = []
104
 
104
 
105
     def extend(self, engine_name, results):
105
     def extend(self, engine_name, results):
106
         for result in list(results):
106
         for result in list(results):
114
                 self._merge_infobox(result)
114
                 self._merge_infobox(result)
115
                 results.remove(result)
115
                 results.remove(result)
116
             elif 'number_of_results' in result:
116
             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'])
118
                 results.remove(result)
118
                 results.remove(result)
119
 
119
 
120
         with RLock():
120
         with RLock():
253
 
253
 
254
     def results_length(self):
254
     def results_length(self):
255
         return len(self._merged_results)
255
         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)

+ 7
- 3
searx/webapp.py Näytä tiedosto

418
                 else:
418
                 else:
419
                     result['publishedDate'] = format_date(result['publishedDate'])
419
                     result['publishedDate'] = format_date(result['publishedDate'])
420
 
420
 
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
+
421
     if search.request_data.get('format') == 'json':
425
     if search.request_data.get('format') == 'json':
422
         return Response(json.dumps({'query': search.query,
426
         return Response(json.dumps({'query': search.query,
423
-                                    'number_of_results': search.result_container.number_of_results,
427
+                                    'number_of_results': number_of_results,
424
                                     'results': search.result_container.get_ordered_results()}),
428
                                     'results': search.result_container.get_ordered_results()}),
425
                         mimetype='application/json')
429
                         mimetype='application/json')
426
     elif search.request_data.get('format') == 'csv':
430
     elif search.request_data.get('format') == 'csv':
440
             'opensearch_response_rss.xml',
444
             'opensearch_response_rss.xml',
441
             results=search.result_container.get_ordered_results(),
445
             results=search.result_container.get_ordered_results(),
442
             q=search.request_data['q'],
446
             q=search.request_data['q'],
443
-            number_of_results=search.result_container.number_of_results,
447
+            number_of_results=number_of_results,
444
             base_url=get_base_url()
448
             base_url=get_base_url()
445
         )
449
         )
446
         return Response(response_rss, mimetype='text/xml')
450
         return Response(response_rss, mimetype='text/xml')
451
         q=search.request_data['q'],
455
         q=search.request_data['q'],
452
         selected_categories=search.categories,
456
         selected_categories=search.categories,
453
         paging=search.paging,
457
         paging=search.paging,
454
-        number_of_results=format_decimal(search.result_container.number_of_results),
458
+        number_of_results=format_decimal(number_of_results),
455
         pageno=search.pageno,
459
         pageno=search.pageno,
456
         base_url=get_base_url(),
460
         base_url=get_base_url(),
457
         suggestions=search.result_container.suggestions,
461
         suggestions=search.result_container.suggestions,