summaryrefslogtreecommitdiff
path: root/searx/engines/__init__.py
AgeCommit message (Collapse)Author
2020-12-17[mod] split searx.search into different processorsAlexandre Flament
see searx.search.processors.abstract.EngineProcessor First the method searx call the get_params method. If the return value is not None, then the searx call the method search.
2020-12-11[enh] add raise_for_httperrorAlexandre Flament
check HTTP response: * detect some comme CAPTCHA challenge (no solving). In this case the engine is suspended for long a time. * otherwise raise HTTPError as before the check is done in poolrequests.py (was before in search.py). update qwant, wikipedia, wikidata to use raise_for_httperror instead of raise_for_status
2020-12-09display if an engine does not support httpsNoémi Ványi
Closes #302
2020-12-03[enh] record details exception per engineAlexandre Flament
add an new API /stats/errors
2020-12-01[fix] /stats: report error percentage instead of error countAlexandre Flament
This bug exists since the PR https://github.com/searx/searx/pull/751
2020-11-20[enh] Add multiple outgoing proxiesAlexandre Flament
credits go to @bauruine see https://github.com/searx/searx/pull/1958
2020-10-25[enh] Add onions category with Ahmia, Not Evil and Torcha01200356
Xpath engine and results template changed to account for the fact that archive.org doesn't cache .onions, though some onion engines migth have their own cache. Disabled by default. Can be enabled by setting the SOCKS proxies to wherever Tor is listening and setting using_tor_proxy as True. Requires Tor and updating packages. To avoid manually adding the timeout on each engine, you can set extra_proxy_timeout to account for Tor's (or whatever proxy used) extra time.
2020-10-07[mod] Add searx.data moduleAlexandre Flament
Instead of loading the data/*.json in different location, load these files in the new searx.data module.
2020-09-22add language names in qwant's fetch languages functionMarc Abonce Seguin
2020-09-07[enh] stop searx when an engine raise an SyntaxError exception (#2177)Alexandre Flament
and some other exceptions: * KeyboardInterrupt * SystemExit * RuntimeError * SystemError * ImportError: an engine with an unmet dependency will stop everything.
2020-08-31Revert "[enh] test: load each engine to check for syntax errors"Alexandre Flament
This reverts commit 4fb3ed2c6335b68f6b28ebc68d5d22f2fd621648.
2020-08-28[enh] test: load each engine to check for syntax errorsDalf
2020-05-31add display_error_messages option to engine settingsNoémi Ványi
A new option is added to engines to hide error messages from users. It is called `display_error_messages` and by default it is set to `True`. If it is set to `False` error messages do not show up on the UI. Keep in mind that engines are still suspended if needed regardless of this setting. Closes #1828
2020-02-08[enh] introduce private enginesNoémi Ványi
This PR adds a new setting to engines named `tokens`. It expects a list of tokens which lets searx validate if the request should be accepted or not.
2019-10-16fix pep 8 checkNoémi Ványi
2019-10-16add initial support for offline engines && command engineNoémi Ványi
2019-07-27[fix] make sure then engine name is lower caseDalf
Minor fix: "%s engine initialized" display the right engine name
2019-01-06[fix] always set langauge_aliases even if it's emptyMarc Abonce Seguin
2018-03-27refactor engine's search language handlingMarc Abonce Seguin
Add match_language function in utils to match any user given language code with a list of engine's supported languages. Also add language_aliases dict on each engine to translate standard language codes into the custom codes used by the engine.
2018-02-17[fix] fix engine initializationAdam Tauber
2018-01-16[fix] read utf-8 files (settings, languages, currency) with python3.5Marc Abonce Seguin
Related to discussion in #1124 The io.open import is necessary for python2
2017-12-21Make Python 3 able to read settings files with Unicode charactersJoseph Nuthalapati
SearX currently doesn't start up when run with Python 3 as it tries to parse the settings.yml file with ASCII codecs. There are similar problems with engines_languages.json and currencies.json Python 3 requires that files with Unicode characters be read with a 'b' flag. This also works with Python 2 and hence can be integrated into the main source code. Tested with the latest Python 3.6.4rc1 on Debian unstable. Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
2017-07-21[mod] separate engine load and initializationAdam Tauber
2017-07-20[enh] add "inactive" attribute to enginesAdam Tauber
This modification allows us to deactivate engines in settings.yml without commenting them out
2017-06-06[fix] pep8Adam Tauber
2017-06-06[enh] add init function to engines which loads parallelAdam Tauber
2017-05-15[enh] py3 compatibilityAdam Tauber
2017-04-08[mod] searx doesn't crash at startup when an engine can't be loaded (see #884)Alexandre Flament
2016-12-28Merge branch 'master' into languagesAdam Tauber
2016-12-27[fix] proper engine initAdam Tauber
2016-12-27[enh] explicit engine initAdam Tauber
2016-12-15tests for _fetch_supported_languages in enginesmarc
and refactor method to make it testable without making requests
2016-12-13[mod] fetch supported languages for several enginesmarc
utils/fetch_languages.py gets languages supported by each engine and generates engines_languages.json with each engine's supported language.
2016-12-13[enh] add supported_languages on engines and auto-generate languages.pymarc
2016-12-09Merge branch 'master' into searchpy2Alexandre Flament
2016-11-19[mod] move load_module function to utilsAdam Tauber
2016-11-05Simplify search.py, basically updated PR #518Alexandre Flament
The timeouts in settings.yml is about the total time (not only the HTTP request but also the prepare the request and parsing the response) It was more or less the case before since the threaded_requests function ignores the thread after the timeout even the HTTP request is ended. New / changed stats : * page_load_time : record the HTTP request time * page_load_count: the number of HTTP request * engine_time : the execution total time of an engine * engine_time_count : the number of "engine_time" measure The avg response times in the preferences are the engine response time (engine_load_time / engine_load_count) To sum up : * Search.search() filters the engines that can't process the request * Search.search() call search_multiple_requests function * search_multiple_requests creates one thread per engine, each thread runs the search_one_request function * search_one_request calls the request function, make the HTTP request, calls the response function, extends the result_container * search_multiple_requests waits for the the thread to finish (or timeout)
2016-09-28[fix] do not allow underscore in engine names - closes #708Adam Tauber
2016-07-26Merge pull request #634 from kvch/advanced-searchAdam Tauber
support time range search
2016-07-25[fix] do not load engines which cannot be initialized - closes #585Adam Tauber
2016-07-25add time range search with yahooNoemi Vanyi
2016-07-04[enh][fix] update to latest dependencies ++ fix tests & travis test runnerAdam Tauber
WARNING: dependency changes
2016-02-20[enh] suspend engines after errorAdam Tauber
The duration is based on the number of continuous errors, but maximized in one minute
2016-02-19[mod] engine load refactorAdam Tauber
2015-08-02[mod] change settings file structure according to #314Adam Tauber
2015-05-30[fix] set engine.safesearch to False if not definedAlexandre Flament
2015-05-02update versions.cfg to use the current up-to-date packagesAlexandre Flament
2015-01-31[enh] default disabled engines - closes #109Adam Tauber
2015-01-09[enh] using the loggerAdam Tauber
2014-12-29Flake8 and Twitter correctionsCqoicebordel
Lots of Flake8 corrections Maybe we should change the rule to allow lines of 120 chars. It seems more usable. Big twitter correction : now it outputs the words in right order...