Commit Graph
100 Commits
Author SHA1 Message Date
Alexandre Flament 5dc8b271f0 [mod] simplify manage.sh
- npm install less@2.7 less-plugin-clean-css grunt-cli is moved inside manage.sh
- if it is possible to source manage.sh to update the PATH (to start grunt)
- tidy the help documentation
- update the geckodriver version to 0.19.1
2017-12-10 10:39:12 +01:00
Alexandre Flament cc69b1cd87 simple theme : replace magnet.svg with a home made version 2017-12-05 21:58:17 +01:00
Dalf 9babe06a0e [mod] simple theme: add the license to different files. 2017-11-26 14:33:11 +01:00
Alexandre Flament c1cfe97851 [enh] timeout and total HTTP time are managed by searx.poolrequests 2017-11-22 18:33:35 +01:00
Alexandre Flament 13216b6706 Dependencies upgrade
https://pypi.python.org/pypi/pyOpenSSL : fix memory leak
http://lxml.de/4.1/changes-4.1.1.html : speed improvement
2017-11-22 15:17:23 +01:00
Alexandre Flament c12e0c39b9 codecov : update the commit status 2017-09-28 19:43:58 +02:00
Alexandre Flament cf3a099c65 codecov: disable comments in the PR 2017-09-28 19:08:57 +02:00
Alexandre Flament fb587f11fe Switch to code-cov 2017-09-17 17:52:22 +02:00
Alexandre Flament 5baad02c06 "./manage.sh update_packages" updates pip and setuptools
Fix issue #887, #962
2017-08-16 19:22:36 +02:00
Alexandre Flament 1a814369fd [fix] manage.sh: add quotes arround parameters dealing with directories or files. 2017-08-16 18:14:07 +02:00
Alexandre Flament d87eb4da61 [mod] travis build : travis uses ./manage.sh to install the geckodriver
./manage.sh don't build css that are built by ./manage.sh grunt_build
2017-08-13 14:01:09 +02:00
Alexandre Flament 57dc6b625f [fix] travis build : various fix about grunt builds 2017-08-13 13:41:59 +02:00
Alexandre Flament d0cebd6e77 [fix] fix selenium tests 2017-08-13 12:57:08 +02:00
Alexandre Flament 14a8dd28c2 [fix] fix no_results.html template of the simple theme 2017-08-12 21:15:31 +02:00
Alexandre Flament 10a24bdc2c [enh] add simple theme (WIP) 2017-08-06 16:04:21 +02:00
Alexandre Flament 4f6586d808 [mod] upgrade dependencies
Mostly interresting for :
* pyopenssl : https://github.com/pyca/pyopenssl/pull/578
* certifi
2017-07-31 22:02:57 +02:00
Alexandre Flament 7ebe3a6f41 [mod] add category to each results, and change group criterias (template and existing image) 2017-05-22 22:20:35 +02:00
Alexandre Flament 87f673336f [fix] rss feed : the jinja template was not found when the rss feed returns an valid feed including an error. 2017-05-22 22:20:35 +02:00
Alexandre Flament 9c91ab33f8 [mod] settings.yml can be /etc/searx/settings.yml
The exact order is
* first from SEARX_SETTINGS_PATH,
* if not found then from searx code base,
* if not found then from /etc/searx/settings.yml
* if not found an exception stops searx loading
2017-05-15 22:19:42 +02:00
Alexandre Flament ee080feaed [mod] the static and templates directories can be defined in the settings.yml 2017-05-15 21:23:13 +02:00
Dalf c233bf0df9 [fix] framalibre : remove result['thumbnail'] (not used) 2017-05-15 17:28:21 +02:00
Alexandre Flament f5128c7cb9 [mod] add/modify image fetching for bing_news, qwant and twitter engines 2017-05-15 17:28:21 +02:00
Alexandre Flament 12d91c1d67 [mod] searx doesn't crash at startup when an engine can't be loaded (see #884) 2017-04-08 17:38:46 +02:00
Alexandre Flament 181c12ae04 [mod] upgrade requirements.txt 2017-03-23 21:26:51 +01:00
Alexandre Flament 9c0889a942 [fix] fix travis build 2017-03-23 21:26:51 +01:00
Alexandre Flament e4d46d21c7 [mod] oscar theme: use tinypng.com to reduce logos and favicon 2017-03-08 16:09:13 +01:00
Alexandre Flament e9785a69c7 [mod] reduce png and gif image sizes using optipng and gifsicle tools. 2017-03-08 16:09:13 +01:00
Alexandre Flament e67dfaaac7 Merge branch 'master' into flask_perimeter 2017-01-27 13:47:59 +00:00
Alexandre Flament 15eef0ebdb [enh] validate input and raise an exception inside search.py. The exception message is output in json and rss format. 2017-01-20 18:52:47 +01:00
Alexandre Flament 7fdfeca3a4 [mod] add a __common__ template that can't be selected but that provides a common place for shared templates.
What has been moved into this template :
* opensearch*.xml is always the same whatever the themes.
* the text inside */about.html
2017-01-20 15:40:38 +01:00
Alexandre Flament 7a16aca346 Merge branch 'master' into flask_perimeter 2017-01-15 22:18:20 +01:00
Alexandre Flament 448903cd4a [fix] searching for "!google_images text" doesn't work (bang with underscore) 2017-01-12 16:17:29 +01:00
Dalf 06bea82935 [mod] /config API : add language_support, paging, safesearch, supported_languages, time_range_support, timeout fields. 2017-01-07 14:42:55 +01:00
Alexandre Flament 0af50e8505 Remove pyasn1-modules from dependencies
According to https://github.com/kennethreitz/requests/issues/749#issuecomment-19187417 there is no need to install pyasn1-modules.
2017-01-06 17:23:54 +01:00
Alexandre Flament 369ec017b7 [enh] standalone_seax.py is a command line interface to searx with JSON output. 2017-01-04 14:14:01 +01:00
Alexandre Flament 6db25fc5c2 [mod] ./manage.sh can download geckodriver and install it into the virtual environment 2017-01-03 19:25:04 +01:00
Alexandre Flament 7bcdc27a2e [fix] fix standalone_search.py 2017-01-03 19:15:55 +01:00
Alexandre Flament 20c94592e7 [mod] upgrade versions in requirements.txt 2017-01-02 14:11:48 +01:00
Alexandre Flament 84a2c97a65 [mod] searx uses flask framework only in webapp.py. Make migration to another framework easier. 2017-01-02 12:06:04 +01:00
Alexandre Flament 90e1db3e5c [fix] extract_text: use html.tostring instead html_to_text. Fix #711 2016-12-31 13:56:09 +01:00
Alexandre Flament 5a9551925d [fix] fix bugs introduced by commit 0a2fde19d0 from dalf/searchpy4 2016-12-30 18:10:14 +01:00
Alexandre Flament 28d51fd063 [mod] timeout in log are readable (the timeouts are compare to the start_time of the request). 2016-12-30 17:37:46 +01:00
Alexandre Flament 3a8ab5880a [mod] result_container.extend sets result['engine'] = engine_name for each result 2016-12-30 17:18:02 +01:00
Alexandre Flament 0a2fde19d0 [mod] add a search_one_request_safe function wrapper to call search_one_request. All exceptions are catched in this wrapper. 2016-12-30 11:51:49 +01:00
Alexandre Flament e48f07a367 Merge branch 'master' into searchpy2 2016-12-09 23:11:45 +01:00
Alexandre Flament 219f047bf3 Merge branch 'master' into searchpy2 2016-11-06 09:44:07 +01:00
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)
2016-11-05 13:45:20 +01:00
Alexandre Flament 58a6c045c8 [mod] replace references request.request_data (GET or POST parameters) by request.form (based on merge of POST and GET parameters) 2016-11-02 14:52:22 +01:00
dalf fbb080f358 Change plugin API :
- pre_search(request, search)
- post_search(request, search)
- on_result(request, search, result)

with
- request is the Flask request
- search a searx.Search instance
- result a searx result as usual
2016-11-02 14:22:16 +01:00
dalf 67e11c42b9 Clean up the architecture
Purposes :
- isolate the plugins calls
- distinction between parsing the web request and running the search (Search class). To be able to test code easily, to run searx code outside a web server, to filter the search query parameters with plugins more easily, etc...

Details :
- request.request_data contains request.form or request.args (initialize inside pre_request() function)
- Query class is renamed RawTextQuery
- SearchQuery class defines all search parameters
- get_search_query_from_webapp create a SearchQuery instance (basically the previous Search.__init__ code)
- Search class and SearchWithPlugins class takes a SearchQuery instance as class constructor parameter
- SearchWithPlugins class inherites from Search class, and run plugins
- A dedicated function search_with_plugins executes plugins to have a well define locals() (which is used by the plugins code).
- All plugins code is executed inside the try...except block (webapp.py, index function)
- advanced_search HTTP parameter value stays in webapp.py (it is only part of UI)
- multiple calls to result_container.get_ordered_results() doesn't compute the order multiple time (note : this method was call only once before)
- paging value is stored in the result_container class (compute in the extend method)
- test about engine.suspend_end_time is done during search method call (instead of __init__)
- check that the format parameter value is one of these : html, rss, json, rss (before the html value was assumed but some text formatting wasn't not done)
2016-11-02 14:22:16 +01:00
dalf 3e7554422b [mod] the environment variable SEARX_DEBUG can override the general.debug value in settings.yml 2016-10-22 21:36:13 +02:00
dalf 972f32d973 [fix] ixquick : fetch results from ixquick.eu instead of ixquick.com, close #727 2016-10-22 20:56:18 +02:00
Alexandre Flament a88768efd8 Merge branch 'master' into http1.1 2016-10-22 14:25:50 +02:00
Alexandre Flament 5b21a7fb65 Merge branch 'master' into opensearch_shortname 2016-10-16 20:03:14 +02:00
dalf cae84e71a5 [fix] seeks URLS, close #731 2016-10-15 18:43:03 +02:00
Alexandre Flament bd4d904002 [mod] remove the kickass engine from settings.yml 2016-07-25 16:00:05 +02:00
Alexandre Flament e655e44133 [fix] close #637 : the search box doesn't overlap the menu. 2016-07-25 15:45:58 +02:00
Alexandre Flament 34835b77e2 [fix] Close #640 : remove MapQuest maps. Add in comment maps.wikimedia.org maps, see https://www.mediawiki.org/wiki/Maps 2016-07-25 15:28:25 +02:00
Alexandre Flament 6ab91515df [enh] autocompletion : add qwant 2016-03-02 19:54:06 +08:00
Alexandre Flament 250777e8a7 Merge pull request #493 from cy8aer/cy8aer
Dockerfile : bug fixes. 
Perhaps "COPY requirements.txt ./requirements.txt" is unnecessary but it doesn't hurt (instead of "COPY requirements.txt .")
2016-02-06 20:26:57 +08:00
Dalf 21332a3e52 update dependency versions described by versions.cfg 2015-06-26 17:44:51 +02:00
Alexandre Flament 1b77befe1f Merge pull request #367 from glogiotatidis/dockerfileupdate
Update Dockerfile.
2015-06-10 19:09:57 +02:00
Dalf ded3f98218 www1x engine: remove comment about unavailable https (https is working now) 2015-06-06 19:44:41 +02:00
Dalf 9e147d91f0 bing_images & www1x engines use https connections 2015-06-06 19:23:07 +02:00
Dalf fc0ae0f907 google engine: code cleanup 2015-06-06 00:18:00 +02:00
Dalf 72c8de35a2 google engine :remove OSM map 2015-06-05 23:56:23 +02:00
Alexandre Flament b8fc531b60 [enh] google engine : parse map links and more 2015-06-05 11:23:24 +02:00
Dalf dafedbfc55 youtube_noapi uses searx.utils.list_get 2015-06-04 18:34:44 +02:00
Dalf 62cc2a5658 [fix] bing_news based on RSS output format 2015-06-04 18:30:08 +02:00
Dalf 4e0f079a8c [fix] youtube_noapi : don't crash when there is no content 2015-06-03 10:12:30 +02:00
Dalf 9d10277c22 remove 'print' 2015-06-02 10:50:49 +02:00
Alexandre Flament fb4df9d6c3 Merge pull request #349 from Cqoicebordel/startpage_autocomplete
Add startpage as an autocompleter engine
2015-06-02 10:43:10 +02:00
Alexandre Flament 39ff21237c [enh] google engine : avoid some "sorry google" by adding another cookie : NID. This cookie is specific by hostname.
This allow to send request to google.* (according to the search language).
Before this commit, request in other languages than english was sent to www.google.com which was redirected to www.google.*
The PREF is still use on the www.google.com domain.
2015-05-30 17:41:40 +02:00
Alexandre Flament 484d0974f7 startpage and ixquick enignes : disabled by default, and timeout set to 6 seconds. 2015-05-30 13:36:10 +02:00
Alexandre Flament 6765823c56 [fix] set engine.safesearch to False if not defined 2015-05-30 12:37:18 +02:00
Alexandre Flament d4d2dd9cb3 [enh] oscar theme: display engine response times in the preferences 2015-05-30 12:15:23 +02:00
Alexandre Flament 7afd02c94e [fix] flickr engine 2015-05-27 13:49:25 +02:00
Alexandre Flament 36a08f2a6a [fix] piratebay engine (and disable it by default) 2015-05-27 12:35:45 +02:00
Alexandre Flament 3d70921175 [fix] bing_news 2015-05-27 12:08:50 +02:00
Alexandre Flament 5525625dae [enh] currency_convert engine: user can write "1 dollars in euros" instead of "1 USD in EUR".
The currency names are fetched wikidata and store into a static file : searx/data/currencies.json
This file is loaded when the currency_converter is loaded.
A database is perhaps more appropiated.
2015-05-12 20:52:08 +02:00
Alexandre Flament 44ed4424f6 [fix] yahoo_news engine 2015-05-03 13:41:36 +02:00
Alexandre Flament 48cffb141b [fix] twitter engine 2015-05-02 18:20:12 +02:00
Alexandre Flament 4689fe341c update versions.cfg to use the current up-to-date packages 2015-05-02 15:45:17 +02:00
Alexandre Flament 59ee040424 [fix] remove a useless print 2015-05-02 15:28:08 +02:00
Alexandre Flament 65e6737413 [fix] google engine tests 2015-05-02 13:21:01 +02:00
Alexandre Flament 732ed952dc [fix] 1x.com tests 2015-05-02 13:09:18 +02:00
Alexandre Flament e7fd546aae [fix] revert of 1x.com (no valid https certificate) 2015-05-02 13:02:42 +02:00
Alexandre Flament 6cd9a045f8 [fix] flickr engine 2015-05-02 12:36:49 +02:00
Alexandre Flament f5d3b21566 [fix] user agent : the "rv:{version}" was missing (can be a issue with some engine, like flickr) 2015-05-02 12:35:57 +02:00
Alexandre Flament 78edc16e66 [enh] reduce the number of http outgoing connections.
engines that still use http : gigablast, bing image for thumbnails, 1x and dbpedia autocompleter
2015-05-02 11:43:12 +02:00
Alexandre Flament 8a69ade875 Revert of #195 when the search language is not english
Sometimes there is two requests to google (depending of the source IP) : one to google.com, the second to google.fr (for instance).

Going to https://www.google.com/ncr and saving the PREF cookie for future use prevent this (there is no redirection).

But, recently (or not ?), by doing this the search returns English results even if the Accept-Language is specified.

There is still a way to prevent this : going to preference, set the search language. I don't know if this can be done by searx.

For now, a quick fix is to disable the use of the PREF cookie when the search language is not English (google engine will slower but returns excepted results).
2015-05-01 21:20:09 +02:00
Alexandre Flament 043b269c6e [fix] tests 2015-04-26 19:23:06 +02:00
Alexandre Flament 8806002886 Merge remote-tracking branch 'origin/ssl' into https 2015-04-26 19:12:17 +02:00
Alexandre Flament 187617498a Log an error if the ndg-httpsclient, pyopenssl and pyasn1 packages are not installed.
See #298
2015-04-26 18:58:31 +02:00
Alexandre Flament 99efd790c8 engines: use https when possible 2015-04-26 18:13:09 +02:00
Alexandre Flament 47b011829d settings.yml clean up : remove locale
locale was declared for bing* engines and vimeo.

  * bing* engines use the language settings.
  * vimeo uses neither locale nor language settings.

This avoid confusion
2015-04-26 17:35:31 +02:00
Alexandre Flament ada5993f61 [fix] #264 : implementation using Referrer Policy (Editor’s Draft, 3 March 2015)
see http://w3c.github.io/webappsec/specs/referrer-policy/
2015-04-26 15:48:48 +02:00
Alexandre Flament 77b2fbb61e [enh] implements #264 : add rel="noreferrer" to external links 2015-04-26 15:32:26 +02:00
Alexandre Flament 2be52b74ad [fix] tests 2015-04-26 12:34:09 +02:00
Alexandre Flament 201928d2b0 [fix] SSL : SNI support 2015-04-26 12:04:29 +02:00