offline.py 956 B

1234567891011121314151617181920212223242526
  1. # SPDX-License-Identifier: AGPL-3.0-or-later
  2. from searx import logger
  3. from searx.search.processors.abstract import EngineProcessor
  4. logger = logger.getChild('searx.search.processor.offline')
  5. class OfflineProcessor(EngineProcessor):
  6. engine_type = 'offline'
  7. def _search_basic(self, query, params):
  8. return self.engine.search(query, params)
  9. def search(self, query, params, result_container, start_time, timeout_limit):
  10. try:
  11. search_results = self._search_basic(query, params)
  12. self.extend_container(result_container, start_time, search_results)
  13. except ValueError as e:
  14. # do not record the error
  15. logger.exception('engine {0} : invalid input : {1}'.format(self.engine_name, e))
  16. except Exception as e:
  17. self.handle_exception(result_container, 'unexpected crash', e)
  18. logger.exception('engine {0} : exception : {1}'.format(self.engine_name, e))