Commit Graph

127 Commits (de887c6347db4c810f7d1e11c77633340d4e2fbd)

Author SHA1 Message Date
Alexandre Flament 1d0c368746 [enh] record details exception per engine
add an new API /stats/errors
4 years ago
Alexandre Flament 3cfef61123 [fix] /stats: report error percentage instead of error count
This bug exists since the PR https://github.com/searx/searx/pull/751
4 years ago
Alexandre Flament 3786920df9 [enh] Add multiple outgoing proxies
credits go to @bauruine see https://github.com/searx/searx/pull/1958
4 years ago
a01200356 c3daa08537 [enh] Add onions category with Ahmia, Not Evil and Torch
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.
4 years ago
Alexandre Flament a9dc54bebc [mod] Add searx.data module
Instead of loading the data/*.json in different location,
load these files in the new searx.data module.
4 years ago
Marc Abonce Seguin ea9d979cc3 add language names in qwant's fetch languages function 4 years ago
Alexandre Flament 3397382754
[enh] stop searx when an engine raise an SyntaxError exception (#2177)
and some other exceptions:
* KeyboardInterrupt
* SystemExit
* RuntimeError
* SystemError
* ImportError: an engine with an unmet dependency will stop everything.
4 years ago
Alexandre Flament b329058c1a Revert "[enh] test: load each engine to check for syntax errors"
This reverts commit 4fb3ed2c63.
4 years ago
Dalf 4fb3ed2c63 [enh] test: load each engine to check for syntax errors 4 years ago
Noémi Ványi e3282748d0 add display_error_messages option to engine settings
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
4 years ago
Noémi Ványi 99435381a8 [enh] introduce private engines
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.
4 years ago
Noémi Ványi 5796dc60c9 fix pep 8 check 5 years ago
Noémi Ványi a6f20caf32 add initial support for offline engines && command engine 5 years ago
Dalf 23611897ec [fix] make sure then engine name is lower case
Minor fix: "%s engine initialized" display the right engine name
5 years ago
Marc Abonce Seguin 51111c2594 [fix] always set langauge_aliases even if it's empty 6 years ago
Marc Abonce Seguin 772c048d01 refactor engine's search language handling
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.
6 years ago
Adam Tauber 2f69eaeb2f [fix] fix engine initialization 6 years ago
Marc Abonce Seguin 829032f306 [fix] read utf-8 files (settings, languages, currency) with python3.5
Related to discussion in #1124
The io.open import is necessary for python2
7 years ago
Joseph Nuthalapati bdc803e185
Make Python 3 able to read settings files with Unicode characters
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>
7 years ago
Adam Tauber 0f6612bb40 [mod] separate engine load and initialization 7 years ago
Adam Tauber 1794f6a4d3 [enh] add "inactive" attribute to engines
This modification allows us to deactivate engines in settings.yml
without commenting them out
7 years ago
Adam Tauber 343ac7197d [fix] pep8 7 years ago
Adam Tauber 78365ffb8a [enh] add init function to engines which loads parallel 7 years ago
Adam Tauber 52e615dede [enh] py3 compatibility 7 years ago
Alexandre Flament 12d91c1d67 [mod] searx doesn't crash at startup when an engine can't be loaded (see #884) 7 years ago
Adam Tauber 8bff42f049 Merge branch 'master' into languages 8 years ago
Adam Tauber ea034fafa9 [fix] proper engine init 8 years ago
Adam Tauber a605377c40 [enh] explicit engine init 8 years ago
marc af35eee10b tests for _fetch_supported_languages in engines
and refactor method to make it testable without making requests
8 years ago
marc f62ce21f50 [mod] fetch supported languages for several engines
utils/fetch_languages.py gets languages supported by each engine and
generates engines_languages.json with each engine's supported language.
8 years ago
marc 149802c569 [enh] add supported_languages on engines and auto-generate languages.py 8 years ago
Alexandre Flament e48f07a367 Merge branch 'master' into searchpy2 8 years ago
Adam Tauber 55dc538398 [mod] move load_module function to utils 8 years ago
Alexandre Flament 01e2648e93 Simplify search.py, basically updated PR #518
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)
8 years ago
Adam Tauber 86daef2063 [fix] do not allow underscore in engine names - closes #708 8 years ago
Adam Tauber 7d9c898170 Merge pull request #634 from kvch/advanced-search
support time range search
8 years ago
Adam Tauber 54d987636e [fix] do not load engines which cannot be initialized - closes #585 8 years ago
Noemi Vanyi 93c0c49e9a add time range search with yahoo 8 years ago
Adam Tauber 257e52954a [enh][fix] update to latest dependencies ++ fix tests & travis test runner
WARNING: dependency changes
8 years ago
Adam Tauber 10947536aa [enh] suspend engines after error
The duration is based on the number of continuous errors, but maximized in one minute
8 years ago
Adam Tauber 17b0c9f74a [mod] engine load refactor 8 years ago
Adam Tauber 1fcf066a81 [mod] change settings file structure according to #314 9 years ago
Alexandre Flament 6765823c56 [fix] set engine.safesearch to False if not defined 9 years ago
Alexandre Flament 4689fe341c update versions.cfg to use the current up-to-date packages 9 years ago
Adam Tauber b19e681cce [enh] default disabled engines - closes #109 10 years ago
Adam Tauber 299a80a1eb [enh] using the logger 10 years ago
Cqoicebordel 5d977056f7 Flake8 and Twitter corrections
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...
10 years ago
Adam Tauber 2e41bfcbdb [enh] engine shortcut validation 10 years ago
Adam Tauber 2cfa760b57 [mod] engine load refactor 10 years ago
Adam Tauber 5740cfbf1c [fix] pep8 part II. 10 years ago