Adam Tauber (20):

  • 754accb6 [fix] typo
  • 1f2dc6c6 [enh] add external plugin support
  • 7b93d11d [fix] add plugin sha sum check to be able to copy updated resources
  • 81e9c755 [fix] pep8
  • e45a269e [mod] create static directory for each external plugin
  • dff879d0 [fix] resolve minor review issues
  • 3f60bb47 [fix] correct imported modules
  • 164e4725 [mod] add dedicated directory to external plugins with gitignore file
  • 93ac4db3 [enh] copy atime_ns and mtime_ns of external plugin resources
  • 62785388 [fix] add search language and time range filter to suggestions - fixes #1314
  • 30d16e7e [fix] use base_url for prefix of sharing 'currenly saved preferences' - fixes #1249 by @matejc
  • 079783e9 [fix] pylint
  • 6ded6e7a [fix] skip uncomplete image results - closes #1496
  • 4a913247 [enh] add option to configure proxies per engine - closes #1827
  • da8b2270 [fix] use base_url everywhere if it is defined in settings.yml
  • a05c660e [enh] add ability to set enabled plugins from settings - closes #1613 #778
  • aa3c18dd [enh] allow searx query parts anywhere in the query - closes #831
  • 6beb84ef [fix] adjust query unit tests
  • 2aef38c3 [fix] resolve query_parts regression
  • 063260d0 [enh] add default http headers - closes #715

Alexandre Flament (99):

  • ec5adad8 [fix] requirements-dev.txt: set fixed versions for all the dependencies (#2154)
  • b329058c Revert "[enh] test: load each engine to check for syntax errors"
  • 33973827 [enh] stop searx when an engine raise an SyntaxError exception (#2177)
  • d0f9778c [mod] results.py: code clean up (#2140)
  • 8ffede61 [fix] docker and k8s: run searx
  • 27215894 [fix] make docker produces clean tag version (0.17.0 instead of 0.17.0-- for example)
  • bdac99d4 Drop Python 2 (5/n): searx.utils.is_valid_lang, input parameter is a str instead of bytes
  • df12ed6e [mod] searx.RawTextQuery: the constructor call parse_query
  • 6deb8507 [fix] searx.utils.HTMLTextExtractor: invalid HTML don't raise an Exception
  • c23401e9 [fix] simple theme: fix autocomplete
  • 2fd582d4 [fix] /autocompleter: return HTTP 400 when q is empty as intent.
  • f9664037 [mod] refactor searx.webapp.get_locale
  • ad0758e5 [mod] add searx/webutils.py
  • c4067a9d [mod] searx.search.Search: split the search method into different methods
  • edd8dccd [mod] searx.query.RawTextQuery: getSearchQuery and changeSearchQuery rename to getQuery and changeQuery
  • 50e717c4 [mod] searx.search: remove unused global variable number_of_searches
  • e8df5d3f [mod] searx.search: change function declaration: online then offline then utility functions.
  • 2dbc0de0 [mod] add searx/webadapter.py
  • 29294951 [mod] add searx.search.EngineRef
  • eecfff26 [mod] check time_range parameter in searx/webadapter.py
  • 691d1272 [mod] check the engine tokens in searx/webadapter.py instead of searx/search.py
  • d5b5e48f [mod] searx/webadapter.py: each web parameter has a dedicated function (parse_pageno, page_lang,....).
  • 678699be [mod] searx/webadapter.py: add get_selected_categories share common code with get_search_query_from_webapp
  • 485a502b [mod] add typing and slots
  • f2f3300b [mod] more typing
  • 93f7f7ee [mod] upgrade requests to version 2.24.0. use ssl instead of pyopenssl.
  • c2a6f145 [fix] Update Sphinx package versions
  • f204e490 [fix] migration from github.com/asciimoo/searx to github.com/searx/searx : fix URLs
  • 6d56c754 [fix] Sphinx 3.2.1 build: add missing "engines" variable in the jinja context
  • 9a856083 [fix] Sphinx 3.2.1 build: call searx.engines.initialize_engines
  • 507896c1 [mod] preferences.py: check language setting with a regex instead of match_language
  • 2cafc546 [fix] revert PR #2232 and #2230
  • 2006eb46 [mod] move extract_text, extract_url to searx.utils
  • c1d10bde [mod] searx/utils.py: add docstring
  • 8f914a28 [mod] searx.utils.normalize_url: remove Yahoo hack
  • 6c39917c [mod] webapp.py: update engines initialization condition
  • bfdad7bc [fix] opensearch.xml URL contains method and autocomplete parameters
  • 15013e64 [fix] drop Python 2: use importlib instead of imp.load_source
  • 8659212f [fix] drop Python 2: use collections.abc.Iterable instead of collections.Iterable
  • d5950079 [fix] fix searx.webadapter
  • a9dc54be [mod] Add searx.data module
  • cfd21bc4 [fix] fix duckduckgo engine
  • 5e706005 [mod] ahmia_filter.py: minor changes
  • ed6696e6 [mod] add external_urls.json and wikidata_units.json
  • 23f4203d [fix] simple theme: infobox: remove useless entity information
  • 382fded6 [mod] result.py: merge infobox URL and attributes when the same label or the same entity
  • ca593728 [mod] duckduckgo_definitions: display only user friendly attributes / URL
  • 95bd6033 [mod] wikidata engine: use one SPARQL request instead of 2 HTTP requests.
  • 54afe37e [mod] .travis.yml: build documentation automatically on the master branch
  • d7f21484 [mod] pylint: add extension-pkg-whitelist=lxml.etree
  • a08df825 [fix] scanr_structure engine: fix import
  • eed43783 [fix] comamnd engine: fix import
  • e28b56e2 [fix] webadapter: fix locked categories
  • 58d72f26 [mod] pylint: minor code change to allow pylint globally
  • b3a3ccf2 [fix] fix of / and /search
  • 8fc74d0d [mod] searx.search: EngineRef, SearchQuery: add repr and eq methods
  • 3038052c [mod] remove unused import
  • 230a5ecd [fix] fix a test_standalone_searx test case
  • 9c25cd99 [mod] use github actions instead of travis
  • 197a013d [fix] fix github workflow
  • c9fb3ac3 [fix] fix github workflow
  • 963b93b5 [fix] fix github workflow: deploy documentation
  • 3786920d [enh] Add multiple outgoing proxies
  • 1cfe7f2a [enh] settings.yml: add use_default_settings option
  • b4b81a5e [enh] settings.yml: add use_default_settings option (2nd version)
  • f1e016e9 [mod] oscar theme: added option into gruntfile.js for generate sourceMap
  • a302ac56 [mod] remove dead code
  • b7f1a842 [fix] tests: fix duplicate method name
  • 3cfef611 [fix] /stats: report error percentage instead of error count
  • 9ed3ee2b [mod] wikidata: WDGeoAttribute class: doesn't change the method signature of get_str
  • b00d1086 [mod] pylint: numerous minor code fixes
  • 8aa2a755 [enh] activate pylint
  • 1d0c3687 [enh] record details exception per engine
  • de887c63 [mod] bing_news: use eval_xpath_getindex
  • ad72803e [mod] xpath, 1337x, acgsou, apkmirror, archlinux, arxiv: use eval_xpath_* functions
  • 64cccae9 [mod] various engines: use eval_xpath* functions and searx.exceptions.*
  • d0d7a3e1 [fix] settings_loader: don't crash when a key exists only in the user settings
  • fa909c7c [mod] stackoverflow & yandex: detect CAPTCHA response
  • 0226ae69 [fix] dbpedia autocomplete (and use HTTPS)
  • 244e812f [fix] remove searx/engines/filecrop.py (dead code)
  • 38d32337 [mod] documentations & comments: update http://* URL to https://*.
  • bef2f2ef [fix] wikidata: fix crash when the item has no description at all and at least one URL.
  • f0054d67 [fix] wikipedia engine: don't raise an error when the query is not found
  • 28cc644f [fix] duckduckgo_definitions: fix relative image URL
  • b3032cf9 [mod] libgen: update the URL to http://libgen.rs/
  • 9bf594cb [mod] duden engine
  • 1e781863 [fix] command engine: SearchQuery.query is str not bytes
  • 4ec81074 [fix] 1x engine
  • 58d51e08 [fix] wikipedia: minor fix: return no result instead of crash in some very few cases.
  • 34df0f79 [fix] youtube_noapi engine
  • deb1bde2 [fix] soundclound: accept result without content
  • 56c64d6b [remove] seedpeer engine
  • fa73f10f [mod) genious: return valid results even if contents are empty
  • 1c9e7cef [remove] remove searchcode_doc and twitter
  • d41cafd5 [fix] xpath, mojeek: fix commit 58d72f26
  • 0ba74cd8 [mod] results: don't crash when an engine don't have a category
  • d703119d [enh] add raise_for_httperror
  • b167ad67 update AUTHORS.rst with new contributors
  • 39ac8147 prepare release 0.18.0

Dalf (9):

  • 678d41d7 [enh] Docker image: uwsgi serves the static files directly.
  • 71871518 [mod] external_bang.py: always read bangs.json with a UTF-8 file.
  • b339b8b6 [mod] bangs.json: remove the favicons
  • 4a35975b [enh] update documentation about docker
  • 4fb3ed2c [enh] test: load each engine to check for syntax errors
  • 1022228d Drop Python 2 (1/n): remove unicode string and url_utils
  • 78df10fb Drop Python 2 (2/n): templates
  • 78883777 Drop Python 2 (3/n): objects
  • c225db45 Drop Python 2 (4/n): SearchQuery.query is a str instead of bytes

Eliesemoule (1):

  • 1986b5ec Utility scripts adapted to run on CentOS 7 (#2112)

Emilien Devos (3):

  • 52d78d84 [fix] piratebay engine
  • c15a91a5 [fix] piratebay engine date and pep8 indentation
  • 741c31fa add new issue template

Finn (1):

  • 53c8d945 [enh] Add SepiaSearch engine (#2227)

Gardouille (1):

  • b13ccb5c Filtron sample: Add missing comma

Gaspard d'Hautefeuille (1):

GazoilKerozen (1):

  • 1b700738 [fix] fix the reset button in the oscar theme (#2306)

Lukáš Kucharczyk (1):

  • 74e4e5e5 Allow localization of "Self Informations"

Lynda Lopez (1):

  • b06fc319 DOI improvements: enable HTTPS, update URL of doai.io (#1718)

M. Efe Çetin (1):

Marc Abonce Seguin (17):

  • 77b9faa8 fix Wikipedia's paragraph extraction
  • 574e99c4 reduce space between title and url in infobox header
  • c9c39b3e add engine's name in infobox's header
  • 001eb047 set max-height on infobox's images
  • 74270a3f add class for infobox's official url
  • 57bad502 add visually-hidden css class to pointhi style
  • 0601f2bb add toggle to resize infobox
  • 0d8970c8 only return one url per "type" in Wikidata (#2151)
  • a2430154 fix selects in preferences so they look consistent (#2150)
  • ab20ca18 use Wikipedia's REST v1 API
  • 7e828179 wait for img to load before hiding infobox toggle
  • ea9d979c add language names in qwant's fetch languages function
  • 41800835 fetch supported languages for startpage engine
  • c86504b4 fix utils/fetch_languages to work with new languages
  • ecf58991 fetch google's search langs rather than ui langs
  • 32957cdf add Ahmia filter plugin for onion results
  • 8d71420b [mod] separate index and search routes

Markus Heiser (22):

  • f9faafa8 [fix] external_bang - UnicodeDecodeError: 'ascii' codec can't decode (#2043)
  • 72e86be0 [fix docs] typo in the template to create a new user
  • 3fe78c64 [fix] minor typos in docs/admin/settings.rst
  • 623fb870 [enh] add centos-7 to LXC images (#2118)
  • 3c45fb7a [fix] set encoding of README.rst explicit in setup.py (utf-8) (#2117)
  • 9b9b5e96 [fix] docker-entrypoint.sh -h hangs if searx is a valid user (#2099)
  • 69a61ce3 [fix] remove doc-build for centos-7 from './utils/searx.sh doc'
  • 9d60ae1c [fix] missing 'alias' typo in docs/admin/installation-nginx.rst
  • 8162d7af [fix] google engine - div classes has been renamed in HTML reult
  • e697d78d [mod] make docs-live - remove --port option from sphinx-autobuild
  • 4a15d675 [fix] make.run - use SEARX_DEBUG=1 instead of modifing settings.yml
  • dd23ad8b [fix] doc - add missing quotation marks in docs/build-templates
  • edef9d2f [doc] searx configuration - add 'mkdir /etc/searx' before copy
  • 45f58a4a [fix] searx configuration - quote bash calls in sed replacements
  • c71d214b [refactor] deviantart - improve results and clean up source code
  • 173b744e [fix] digg - the ISO time stamp of published date has been changed
  • 6b0a896f [mod] digg - pylint searx/engines/digg.py
  • bef18572 [refactor] digg - improve results and clean up source code
  • a70b9b9f [doc] recommend to use 'use_default_settings=True'
  • ea62df1d [doc] update developer quickstart guide
  • c8d2b19c [doc] document why to use sudoer to run intsallation scripts
  • dc94a1d4 [doc] add a tip about how to brand and stash a searx instance setup

Michael Ilsaas (4):

  • 98cb6b67 Update torrentz2 URL from .eu to .is
  • 0305fe0d include author in invidious results
  • 2ed8ad76 include length in invidious results
  • a1ce141c add peertube engine (#2109)

Mohamad Safadieh (2):

  • 1ea35605 Use query params for browser autocomplete
  • 8dff74dd Make default query submission method configurable

Nicholas Kegler (1):

Nicolas Gelot (23):

  • 518ff4e0 Reduce max memory used by redis
  • 7ed28a87 Update docker base image to 3.9-slim
  • 840124cc Remove traefik as docker service
  • efa4280a Simplify docker setup
  • 13b37068 Fix decoding of morty key
  • 1b2436d2 Fix no proxy for b64 images
  • 73beee40 Fix support of python 3.9
  • cb2a7443 Fix remove invalid thumbnail
  • cffc1ef3 Fix CD about test and prod env
  • a748a82d Fix endpoint /search instead of root
  • d3234754 Disable qwant engine
  • 39aa1415 Remove users IP from logs
  • 23baed3e Remove duplicate header from nginx
  • c88065df Update jquery 3.5.1
  • f34ca5b7 Update filtron rules
  • a131b176 Update CI/CD for production
  • 9c5cc52c Fix filtron rules to allow xhr requests
  • d2ef9c64 Fix search corrections render
  • d10ab13c Fix remove 'en' URL results from wikidata
  • 48b5e0a8 Tweak default engines
  • 8a3b854b Update settings/doc to running spot in dev mode
  • 4a9b7539 fix CI conflict with inherited group variables from e
  • 13d21226 Update /e/ links and footer

Noémi Ványi (15):

  • fd80453a Add PR template and contribution guidelines
  • 157fa1ad add Gitea engine
  • 74013c21 Revert "[enh] new plugin to open results on new browser tabs"
  • f0ca1c34 [enh] Add command line engines: git grep, find, etc. (#2128)
  • f0278d41 add ebay enginte to shopping category
  • f0e6678a Add blogpost about command engine
  • ce000a9f Fix XPATH of lobste.rs engine && add timeout
  • 72c7fd25 Add yacy improvements: HTTP digest auth, category checking
  • e158eeee Propagate error messages from YouTube API
  • 116f7a6d Force admins to set secret_key if debug mode is disabled
  • 33e139ca Let admins lock user preferences
  • 43e69768 New engine: Elasticsearch
  • 80a8bc5a Fix type of unresponsive_engines
  • 4a36a304 Add recoll engine (#2325)
  • 3a63dfbd display if an engine does not support https

Pierre Chevalier (1):

  • 482da5c6 Correct what was obviously a typo in vir(t)ualenv.

Qt Resynth (2):

  • 21dbc7e8 "Egde" → "Edge"
  • 246b8cd1 [fix] about.html: fix small inconsistencies in about page (#2219)

Scott Wallace (1):

  • 8bcba31e Add key to settings.yml for opening result links in a new tab Closes #1552 Closes #444

Singustromo (1):

TheEvilSkeleton (1):

  • 925be22d Replaced dash with em in searx description (#1973)

Venca24 (8):

Vlad (3):

  • d83ee1e4 Add clearfix to fix issue 2110
  • c3af520c Fix search error with query 'random sha256'
  • f678388d Fix google images 'get image' button bug from issue #2103 (#2115)

Wonderfall (1):

  • 7b19e6c5 Dockerfile: upgrade base to alpine 3.12 (#1983)

a01200356 (1):

  • c3daa085 [enh] Add onions category with Ahmia, Not Evil and Torch

asht (1):

  • 3b8bd077 Change isAlive() to is_alive() as isAlive() is unsupported in newer Python versions

joshu9h (1):

mrwormo (1):

  • 2b153db7 Disable Invidious engine by default

rachmadani haryono (1):

  • c03e4c86 Feature/standalone searx update (#1591)

rachmadaniHaryono (4):

  • 4d4b6750 chg: test: suppress output
  • 3dea5ead chg: dev: pep8 to pycodestyle
  • d422f605 chg: test: Makefile pep8 test
  • 5d015b58 new: test: ignored warning and errors

renyhp (8):

xywei (1):

  • 1d4657b7 Fix relative urls that do not start with '/'

Émilien Devos (2):

  • 27d74826 [enh] add yggtorrent engine (#2135)
  • a5e6423c [fix] opensearch on chromium for android (#2132)