summaryrefslogtreecommitdiff
path: root/searx
AgeCommit message (Collapse)Author
2021-05-27[pylint] webapp.py - fix all messages from pylintMarkus Heiser
No functional change, just some linting. - fix messages from pylint (see below) - log where general Exceptions are catched (broad-except) - normalized various indentation - To avoid clashes with common names, add prefix 'route_' to all @app.route decorated functions. Fixed messages:: searx/webapp.py:744:0: C0301: Line too long (146/120) (line-too-long) searx/webapp.py:756:0: C0301: Line too long (132/120) (line-too-long) searx/webapp.py:730:9: W0511: TODO, check if timezone is calculated right (fixme) searx/webapp.py:1:0: C0114: Missing module docstring (missing-module-docstring) searx/webapp.py:126:8: I1101: Module 'setproctitle' has no 'setthreadtitle' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member) searx/webapp.py:126:36: W0212: Access to a protected member _name of a client class (protected-access) searx/webapp.py:131:4: R1722: Consider using sys.exit() (consider-using-sys-exit) searx/webapp.py:141:4: R1722: Consider using sys.exit() (consider-using-sys-exit) searx/webapp.py:255:38: W0621: Redefining name 'request' from outer scope (line 32) (redefined-outer-name) searx/webapp.py:307:4: W0702: No exception type(s) specified (bare-except) searx/webapp.py:374:24: W0621: Redefining name 'theme' from outer scope (line 155) (redefined-outer-name) searx/webapp.py:420:8: R1705: Unnecessary "else" after "return" (no-else-return) searx/webapp.py:544:4: W0621: Redefining name 'preferences' from outer scope (line 917) (redefined-outer-name) searx/webapp.py:551:4: W0702: No exception type(s) specified (bare-except) searx/webapp.py:566:15: W0703: Catching too general exception Exception (broad-except) searx/webapp.py:613:4: R1705: Unnecessary "elif" after "return" (no-else-return) searx/webapp.py:690:8: W0621: Redefining name 'search' from outer scope (line 661) (redefined-outer-name) searx/webapp.py:661:0: R0914: Too many local variables (22/20) (too-many-locals) searx/webapp.py:674:8: R1705: Unnecessary "else" after "return" (no-else-return) searx/webapp.py:697:11: W0703: Catching too general exception Exception (broad-except) searx/webapp.py:748:4: R1705: Unnecessary "elif" after "return" (no-else-return) searx/webapp.py:661:0: R0911: Too many return statements (9/6) (too-many-return-statements) searx/webapp.py:661:0: R0912: Too many branches (29/12) (too-many-branches) searx/webapp.py:661:0: R0915: Too many statements (74/50) (too-many-statements) searx/webapp.py:931:4: W0621: Redefining name 'image_proxy' from outer scope (line 1072) (redefined-outer-name) searx/webapp.py:946:4: W0621: Redefining name 'stats' from outer scope (line 1132) (redefined-outer-name) searx/webapp.py:917:0: R0914: Too many local variables (34/20) (too-many-locals) searx/webapp.py:917:0: R0912: Too many branches (19/12) (too-many-branches) searx/webapp.py:917:0: R0915: Too many statements (65/50) (too-many-statements) searx/webapp.py:1063:44: W0621: Redefining name 'preferences' from outer scope (line 917) (redefined-outer-name) searx/webapp.py:1072:0: R0911: Too many return statements (9/6) (too-many-return-statements) searx/webapp.py:1151:4: C0103: Variable name "SORT_PARAMETERS" doesn't conform to '(([a-z][a-zA-Z0-9_]{2,30})|(_[a-z0-9_]*)|([a-z]))$' pattern (invalid-name) searx/webapp.py:1297:0: R1721: Unnecessary use of a comprehension (unnecessary-comprehension) searx/webapp.py:1303:0: C0103: Argument name "e" doesn't conform to '(([a-z][a-zA-Z0-9_]{2,30})|(_[a-z0-9_]*))$' pattern (invalid-name) searx/webapp.py:1303:19: W0613: Unused argument 'e' (unused-argument) searx/webapp.py:1338:23: W0621: Redefining name 'app' from outer scope (line 162) (redefined-outer-name) searx/webapp.py:1318:0: R0903: Too few public methods (1/2) (too-few-public-methods) Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-26[pylint] webapp.py - fix all wrong-import-order messages from pylintMarkus Heiser
pylint message: wrong-import-order Respect PEP8 import order (standard imports first, then third-party libraries, then local imports). pylint message: wrong-import-position Do not mix code & imports BTW: - only one import per line - replace licence text by SPDX tag Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-26[fix] webapp.py - running without installation is not supportedMarkus Heiser
Remove extension of the sys.path (aka PYTHONPATH). Running instance directly from repository's folder is a relict from the early beginning in 2014 (fd651083f) and is no longer supported. Since commit dd46629 was merged the command line 'searx-run' exists and should be used. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-26Merge pull request #94 from return42/pylint-networkAlexandre Flament
Pylint searx.network
2021-05-25[mod] unsplash engine - activated by defaultMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-25[fix] unsplash engine - 'searx:result: invalid title:'Markus Heiser
- Use result 'alt_description' as title, if not given use default title 'unknown'. - Use result 'description' from unsplash as 'content' Fix error:: DEBUG:searx:result: invalid title: {..., 'title': None, 'content': '', 'engine': 'unsplash'} Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-25[pylint] searx/engines/unsplash.py, add logger & norm indentationMarkus Heiser
- fix messages from pylint - add logger and log request URL - normalized various indentation Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[coding-style] searx/network/network.py - normalized indentationsMarkus Heiser
No functional change! Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[coding-style] searx/network/client.py - normalized indentationsMarkus Heiser
No functional change! Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[pylint] searx/network/raise_for_httperror.pyMarkus Heiser
No functional change! - fix messages from pylint - add ``global NETWORKS`` - normalized indentations Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[pylint] searx/network/network.py & add global (NETWORKS)Markus Heiser
No functional change! - fix messages from pylint - add ``global NETWORKS`` Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[pylint] searx/network/client.py & add global (TRANSPORT_KWARGS)Markus Heiser
No functional change! - fix messages from pylint - add ``global TRANSPORT_KWARGS`` - normalized python_socks imports Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[pylint] searx/network/__init__.py & add global (THREADLOCAL)Markus Heiser
No functional change! - fix messages from pylint - add ``global THREADLOCAL`` - normalized various indentation Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[fix] engine genius should not use the video templateMarkus Heiser
Remove 'template' from result. Engine genius should not use the video template. BTW: fix indentations Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-24[pylint] searx/engines/genius.py, add logger & normalized indentationMarkus Heiser
- pylint searx/engines/genius.py - add logger and log ignored exceptions - normalized various indentation Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-23[enh] XPath engine - add time safe-search supportMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-23[enh] XPath engine - add time range supportMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-23[enh] XPath engine - add ISO 639-1 {lang} replacement to search-URLMarkus Heiser
BTW: remove obsolte params['query'] and not needed paging condition. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-23[doc] add documentation about the XPath engineMarkus Heiser
- pylint searx/engines/xpath.py - fix indentation of some long lines - add logging - add doc-strings Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-22[refactor] metrics.get_reliabilities() - make code more readableMarkus Heiser
- init stat values by None - drop round_or_none - don't try to get percentage if base is 'None' Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-22[fix] offline engines: fix templates /stats and /preferencesAlexandre Flament
2021-05-22[fix] metrics: processing time = total time if there is no http timeAlexandre Flament
It was previsouly None Fix /stats
2021-05-22[fix] offline engine: don't crash on time recordingAlexandre Flament
2021-05-21[pylint] searx/search/__init__.py & replace lic-text by SPDX tagMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-21[mod] remove gc.collect() after each user requestAlexandre Flament
2021-05-18[fix] unit test: don't load /etc/searx/settings.ymlAlexandre Flament
Add a new environment variable SEARX_DISABLE_ETC_SETTINGS to disable loading of /etc/searx/settings.yml unit tests: * set SEARX_DISABLE_ETC_SETTINGS to 1 * remove SEARX_SETTINGS_PATH if it exists
2021-05-18Merge pull request #81 from return42/csp-bar-graphAlexandre Flament
[fix] make /stats more CSP compliant
2021-05-17[static] make /stats more CSP compliant- make themes.allMarkus Heiser
Based on commits - 0507e185 [fix] bar graph and rename CSS class engine-scores -> engine-score - 3e9ad7ae [fix] make /stats more CSP compliant - github issue form - 34859d0e [fix] make /stats more CSP compliant - oscar theme - 0a6c4884 [fix] make /stats more CSP compliant - simple theme - cdfb4b7f [fix] make /stats more CSP compliant - bar graph - 965817f2 [fix] simple theme - generate missing sourceMap file this patch is generated by:: make themes.all Reported-by: https://github.com/searxng/searxng/issues/57 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[fix] bar graph and rename CSS class engine-scores -> engine-scoreMarkus Heiser
- drop #main_stats selector in stats.less - 'engine-score' exists before this PR. - untabify searx/static/themes/__common__/less/stats.less for details see comment at: https://github.com/searxng/searxng/pull/81/files/d93bec7638908cae64530727d4e1539ae10bd144..1204e4f07e932029d66b4674a3474918228459a6#r633571496 Suggested-by: @dalf in commit 1204e4f0 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[fix] make /stats more CSP compliant - github issue formMarkus Heiser
Hide textarea from github issue form:: ./__common__/new_issue.html:6: <textarea name="body" style="display: none;">{{- '' -}} BTW: fix indentation. Reported-by: https://github.com/searxng/searxng/issues/57 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[fix] make /stats more CSP compliant - oscar themeMarkus Heiser
Replace oscar theme's *styles* (see below) by CSP compliant implementation in ``searx/static/themes/__common__/less/stats.less`` :: ./oscar/stats.html:29: <th scope="col" style="width:20rem;">{{ th_sort('name', _("Engine name")) }}</th> ./oscar/stats.html:30: <th scope="col" style="width:7rem; text-align: right;">{{ th_sort('score', _('Scores')) }}</th> ./oscar/stats.html:33: <th scope="col" style="text-align: right;">{{ th_sort('reliability', _('Reliability')) }}</th> ./oscar/stats.html:38: <td style="text-align: right;"> ./oscar/stats.html:91: <td style="text-align: right;"> {{ engine_reliabilities.get(engine_stat.name, {}).get('reliablity') }}</td> ./oscar/stats.html:109: <tbody style="padding-top: 1rem;"> ./oscar/stats.html:112: <th scope="row" style="width: 10rem">{{ _('Exception') }}</th><td>{{ error.exception_classname }}</td> ./oscar/stats.html:114: <th scope="row" style="width: 10rem">{{ _('Message') }}</th><td>{{ error.log_message }}</td> ./oscar/stats.html:116: <th scope="row" style="width: 10rem">{{ _('Percentage') }}</th><td style="width: 10rem">{{ error.percentage }}</td> ./oscar/stats.html:121: <span style="border-right: 1px solid gray; padding: 0 1rem 0 0; margin: 0 0 0 0.5rem;">{{ param }}</span> ./oscar/stats.html:138: <th scope="col" style="width: 10rem">{{ _('Failed test') }}</th> Reported-by: https://github.com/searxng/searxng/issues/57 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[fix] make /stats more CSP compliant - simple themeMarkus Heiser
Replace simple theme's *styles* (see below) by CSP compliant implementation in ``searx/static/themes/simple/less/stats.less`` :: ./simple/stats.html:26: <table style="max-width: 1280px; margin: 0 auto 0 0;"> ./simple/stats.html:28: <th scope="col" style="width:20rem;">{{ th_sort('name', _("Engine name")) }}</th> ./simple/stats.html:29: <th scope="col" style="width:7rem; text-align: right;">{{ th_sort('score', _('Scores')) }}</th> ./simple/stats.html:32: <th scope="col" style="text-align: right;">{{ th_sort('reliability', _('Reliability')) }}</th> ./simple/stats.html:37: <td style="text-align: right;"> ./simple/stats.html:90: <td style="text-align: right;"> {{ engine_reliabilities.get(engine_stat.name, {}).get('reliablity') }}</td> ./simple/stats.html:106: <table style="max-width: 1280px; margin: 1rem; border: 1px solid gray;"> ./simple/stats.html:107: <tbody style="padding-top: 1rem;"> ./simple/stats.html:110: <th scope="row" style="width: 10rem">{{ _('Exception') }}</th><td>{{ error.exception_classname }}</td> ./simple/stats.html:112: <th scope="row" style="width: 10rem">{{ _('Message') }}</th><td>{{ error.log_message }}</td> ./simple/stats.html:114: <th scope="row" style="width: 10rem">{{ _('Percentage') }}</th><td style="width: 10rem">{{ error.percentage }}</td> ./simple/stats.html:119: <span style="border-right: 1px solid gray; padding: 0 1rem 0 0; margin: 0 0 0 0.5rem;">{{ param }}</span> ./simple/stats.html:136: <th scope="col" style="width: 10rem">{{ _('Failed test') }}</th> Reported-by: https://github.com/searxng/searxng/issues/57 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[fix] make /stats more CSP compliant - bar graphMarkus Heiser
Replace bar graph's *styles* (see below) by CSP compliant implementation in ``searx/static/themes/__common__/less/stats.less`` :: ./simple/stats.html:49: <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}} ./simple/stats.html:57: <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}} ./simple/stats.html:58: <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}} ./oscar/stats.html:50: <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}} ./oscar/stats.html:58: <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}} ./oscar/stats.html:59: <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}} Reported-by: https://github.com/searxng/searxng/issues/57 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[fix] simple theme - generate missing sourceMap fileMarkus Heiser
C&P from searx/static/themes/oscar/gruntfile.js Suggested-by: @dalf in commit 1204e4f0 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[less] update grunt-contrib-less v3.3.0Markus Heiser
Upgraded [v3.3.0] otherwise:: ` width: calc(100% - 5rem);` becomes `width: 95%` once compiled by less version 1.4.1. [v3.3.0] https://github.com/gruntjs/grunt-contrib-less/releases/tag/v3.0.0 Suggested-by: @dalf in commit 1204e4f0 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[fix] engine archive is - search_url has been changedMarkus Heiser
BTW: set soft_max_redirects from *archive is* by 1, to prevent logging:: DEBUG:httpx._client:HTTP Request: GET https://archive.is/search/?q=www.python.org "HTTP/2 302 Found" DEBUG:httpx._client:HTTP Request: GET https://archive.is/www.python.org "HTTP/2 200 OK" DEBUG:searx:archive is: ErrorContext('searx/search/processors/online.py', 110, 'count_error(self.engine_name,', None, '1 redirects, maximum: 0', ('200', 'OK', 'archive.is')) True Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-17[enh] xpath engine - add request parameter 'soft_max_redirects'Markus Heiser
Make 'soft_max_redirects' configurable per Xpath engine:: - name : <engine-name> engine : xpath soft_max_redirects: 1 ... Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-14[fix] webapp.py: pylint: disable=assigning-non-slot for request.*Alexandre Flament
Note: actually, the code should use flask.g.* instead of request.*
2021-05-06[mod] Server-Timing header: add render fieldAlexandre Flament
Add a "render" field to the Server-Timing header This field is the time spent in the searx.webapp.render function (Jinja2 rendering) See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing
2021-05-05[mod] searx.network.client: the same configuration reuses the same ↵Alexandre Flament
ssl.SSLContext before there was one ssl.SSLContext per client. see https://github.com/encode/httpx/issues/978
2021-05-05[pylint] checker/__main__.py & checker/background.pyMarkus Heiser
Lint files that has been touched by [PR #58] [PR #58] https://github.com/searxng/searxng/pull/58 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-05-05[mod] multithreading only in searx.search.* packagesAlexandre Flament
it prepares the new architecture change, everything about multithreading in moved in the searx.search.* packages previously the call to the "init" function of the engines was done in searx.engines: * the network was not set (request not sent using the defined proxy) * it requires to monkey patch the code to avoid HTTP requests during the tests
2021-05-04Merge pull request #55 from searxng/upd-relialibility-columnMarkus Heiser
[themes] /preferences, reliablity: warning icons & error logs link
2021-05-04[mod] option to enable or disable "proxy" button next to each result (#54)Markus Heiser
* [mod] option to enable or disable "proxy" button next to each result Closes: https://github.com/searxng/searxng/issues/51 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de> Co-authored-by: Alexandre Flament <alex@al-f.net>
2021-05-04[themes] /preferences, reliablity: warning icons & error logs linkAlexandre Flament
When there is at least one errors or one failed checker test: * the warning icon is displayed in the reliability column * the link "View error logs and submit a bug report" is displayed on engine name tooltip. Before: * the warning icon was displayed only when one or more checker test(s) failed. * the link "View error logs and submit a bug report" was not shown when a checker test failed but there were no error.
2021-05-03Merge pull request #44 from searxng/dependabot/pip/master/pylint-2.8.2Markus Heiser
Bump pylint from 2.7.4 to 2.8.2
2021-05-03Bump pylint from 2.7.4 to 2.8.2dependabot[bot]
Bumps [pylint](https://github.com/PyCQA/pylint) from 2.7.4 to 2.8.2. - [Release notes](https://github.com/PyCQA/pylint/releases) - [Changelog](https://github.com/PyCQA/pylint/blob/master/ChangeLog) - [Commits](https://github.com/PyCQA/pylint/compare/pylint-2.7.4...v2.8.2) Signed-off-by: dependabot[bot] <support@github.com>
2021-05-02fix Qwant's fetch_languages functionMarc Abonce Seguin
2021-05-01Merge pull request #49 from searxng/update_data_update_ahmia_blacklist.pyAlexandre Flament
Update searx.data - update_ahmia_blacklist.py
2021-05-01Merge pull request #50 from searxng/update_data_update_currencies.pyAlexandre Flament
Update searx.data - update_currencies.py