Commit Graph

849 Commits

Author SHA1 Message Date
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>
2017-12-21 17:33:19 +05:30
Noémi Ványi 2d5eed9b59 send constant cookie with query to Google 2017-12-18 21:38:52 +01:00
Adam Tauber 7752b0a807 [fix] gigablast url parameter change - fixes #1107 2017-12-09 21:00:08 +01:00
marc 4d1770398a remove 'all' option from search languages 2017-12-06 01:20:15 -06:00
Adam Tauber 1613c6319e [fix] handle /sorry redirects 2017-12-05 20:38:34 +01:00
Adam Tauber 1088c2a75d [fix] do not crash if publication date is missing in pubmed engine 2017-12-01 20:54:12 +01:00
Adam Tauber 801b5a56ad [fix] multiple fixes in pdbe engine 2017-12-01 20:54:12 +01:00
Adam Tauber 0969e50c5b [fix] convert json engine result attributes to string - closes #1006 2017-12-01 20:54:12 +01:00
Adam Tauber 6eb9503896 [fix] use english in google engine if no language was set - this prevents guessing the language by the IP of the instance 2017-11-22 22:56:47 +01:00
Adam Tauber 6fdb6640d9 [fix] revert language changes to prevent CAPTCHAs 2017-11-22 22:50:48 +01:00
Adam Tauber 9ab8536479 [fix] fix language support of google 2017-11-21 16:28:53 +01:00
pyrrh0n1c 4340c0b16c Fixed typos. 2017-11-07 14:14:20 +00:00
pyrrh0n1c 2231b02add Fixed the currency_convert engine. 2017-11-07 13:29:17 +00:00
Adam Tauber 00a7041daa
Merge pull request #1068 from Apply55gx/genius
Continuation of PR #1004 (seems abandoned)
2017-11-03 20:21:25 +01:00
Adam Tauber 7a9b18e9e9 [mod] add more error handling to json engine II. 2017-11-02 01:08:15 +01:00
Adam Tauber 181f1c6305 [mod] add more error handling to json engine 2017-11-02 00:43:29 +01:00
Noémi Ványi 5954a8e16a minor fix of BASE engine 2017-11-01 17:02:38 +01:00
Noémi Ványi d20bba6dc7 minor fixes of pubmed engine
Closes #1045
2017-11-01 17:02:38 +01:00
jibe-b df0d915806 [add] pubmed engine 2017-11-01 17:02:38 +01:00
Noémi Ványi 9c2b7a82f0 minor fixes of arxiv
Closes #1050
2017-11-01 14:22:22 +01:00
jibe-b e391b2d970 [fix] remove .encode for python3 compatibility 2017-11-01 11:54:55 +01:00
jibe-b 5278fa666c [enh] use format to concatenate strings 2017-11-01 11:54:38 +01:00
jibe-b 3e3672e079 [add] arxiv engine 2017-11-01 11:54:16 +01:00
Apply55gx d800e3fcfa Merge pull request #1 from asciimoo/master
-
2017-10-25 10:44:28 +02:00
Apply55gx 18a4e7035f removed unused indicies array 2017-10-25 10:42:37 +02:00
marc 44085e31d0 update engines_languages.json and languages.py
Also, fix fetch_languages.py so it can run on python3.
2017-10-10 16:53:28 -05:00
marc a524dbb823 [fix] language support for bing images and videos 2017-10-10 16:49:49 -05:00
misnyo 33fd938016 [mod] int_or_zero refactored to searx_utils 2017-09-04 20:05:04 +02:00
misnyo c3232b0e1a Merge branch 'master' into nyaa 2017-09-04 17:48:25 +02:00
Adam Tauber 234366b900 Merge pull request #1018 from misnyo/generalfile
[mod]generalfile engine removed
2017-09-03 23:09:49 +02:00
Adam Tauber c505c3c1ca Merge pull request #1019 from misnyo/gigablast
[fix] gigablast api fix
2017-09-03 23:09:33 +02:00
misnyo b91772eff1 [fix] gigablast pep8 fix 2017-08-31 21:49:19 +02:00
misnyo 01330f71cd [fix] nyaa.si fixed 2017-08-31 21:32:30 +02:00
misnyo 1e2b60f380 [mod] tokyotoshokan dependecy to other engine removed 2017-08-31 21:31:40 +02:00
misnyo 3182ba7069 [fix] google news dom xpath fix 2017-08-31 17:48:07 +02:00
misnyo 8849606e5f [fix] gigablast api fix 2017-08-31 16:57:57 +02:00
misnyo 2d66df0548 [mod]generalfile engine removed 2017-08-31 15:51:16 +02:00
Adam Tauber e74aaa781e Merge pull request #1016 from misnyo/blekko
[mod]blekko images removed
2017-08-30 21:48:36 +02:00
Adam Tauber 610117d054 Merge pull request #1015 from misnyo/digg
[fix] digg now requires cookie for search
2017-08-30 21:35:12 +02:00
misnyo 6e92fb383a [fix] digg cookie characters created in module import 2017-08-30 21:14:12 +02:00
misnyo 20d2d4dab1 [fix] pep8 fix for faroo engine 2017-08-30 21:09:03 +02:00
misnyo 0607b167f8 [fix] faroo json api and image layout fixed 2017-08-30 21:09:03 +02:00
misnyo a49cc18f9c [fix] digg now requires cookie for search 2017-08-30 19:51:33 +02:00
misnyo f139f9cfdb [mod]blekko images removed 2017-08-30 16:47:56 +02:00
misnyo d14e2781b2 [fix]torrentz search engine fixed for new version 2017-08-25 00:52:35 +02:00
woorst 2434c29dc5 New engine: Genius (lyrics) 2017-08-19 19:05:17 -05:00
marc 3ca9cad927 add bing videos engine 2017-08-05 20:35:57 -05:00
marc 856dfc3018 add google videos 2017-07-26 15:49:16 +02:00
Adam Tauber 077d8efed8 [fix] use poolrequests in ddg engines 2017-07-21 16:23:20 +02:00
Adam Tauber 0f6612bb40 [mod] separate engine load and initialization 2017-07-21 14:27:25 +02:00
Adam Tauber 1794f6a4d3 [enh] add "inactive" attribute to engines
This modification allows us to deactivate engines in settings.yml
without commenting them out
2017-07-20 13:32:20 +02:00
marc 405e5c8f24 [fix] duckduckgo images doesn't fail with countryless language 2017-07-10 18:41:50 +02:00
potato 9b82cb1908 [fix] is_valid_lang fixed for new languages.py + dictzone engine encoding 2017-06-25 18:29:19 +02:00
vache asatryan 5835ebf955 fix github url 2017-06-18 21:53:10 +04:00
Noémi Ványi c361811cb5 [fix] fix xpath of google images 2017-06-13 19:47:56 +02:00
Adam Tauber 343ac7197d [fix] pep8 2017-06-06 23:37:42 +02:00
Adam Tauber 78365ffb8a [enh] add init function to engines which loads parallel 2017-06-06 22:20:20 +02:00
marc 3b950929b1 [fix] fix duckduckgo's offset
First page now starts with 0 offset,
rather than starting on the 30th result.

DuckDuckGo returns 30 results on each page.
2017-05-27 21:12:39 -05:00
marc c65a409f0d add duckduckgo images engine 2017-05-23 20:07:09 +02:00
Adam Tauber 1972a044a3 [fix] produce valid urls if scheme is missing 2017-05-22 15:48:37 +02:00
Adam Tauber 8db527c1d2 [fix] use raw response with etree.parsefromstring - Unicode strings with encoding declaration are not supported 2017-05-22 15:36:52 +02:00
Adam Tauber a4f7046b8f [fix] pep8 2017-05-18 22:19:44 +02:00
Noémi Ványi 2a9339f4b7 [fix] add more description on possible search tpyes 2017-05-18 22:04:31 +02:00
Noémi Ványi 2db807368c [enh] make search type of mediawiki configurable 2017-05-18 21:34:54 +02:00
marc 9ee8e552da [fix] bing images 2017-05-17 15:45:55 +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
Adam Tauber 52e615dede [enh] py3 compatibility 2017-05-15 12:02:30 +02:00
Adam Tauber 46a2c63f8e [fix] yahoo news date parsing 2017-04-08 19:45:04 +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
François Revol 45d15bd6f0 Add framalibre engine
framalibre.org is a catalogue of Free Software, edited by Framasoft.

For now we pass the thumbnail as img_src as it doesn't seem to be used
for IT...
2017-03-22 00:18:23 +01:00
marc fd65c12921 make search language handling less strict
languages.py can change, so users may query on a language that is not
on the list anymore, even if it is still recognized by a few engines.

also made no and nb the same because they seem to return the same,
though most engines will only support one or the other.
2017-03-18 23:44:21 +01:00
marc 805fb02ed1 add language support for qwant
closes issue #863
2017-03-18 23:44:21 +01:00
Noémi Ványi 742e4dfdcc [fix] fix paging of duckduckgo 2017-02-01 20:54:13 +01:00
Adam Tauber 52d1087202 [enh] add result number parsing to google engine 2017-01-27 00:18:46 +01:00
Adam Tauber 57149661e4 Merge pull request #830 from davidar/se
Semantic Scholar
2017-01-18 23:50:11 +01:00
Adam Tauber b1d49bacb0 Merge pull request #827 from davidar/spell
[enh] show spelling corrections
2017-01-18 23:49:01 +01:00
David A Roberts 7492997c51 [fix] allow empty content 2017-01-17 21:14:33 +10:00
David A Roberts 1d30141c20 [enh] show spelling corrections 2017-01-16 13:31:16 +10:00
jcherqui 39a97825d9 Add torrent infos 2017-01-15 16:13:23 +01:00
jcherqui 4776abd1ac Remove categories 2017-01-15 16:13:23 +01:00
jcherqui a320328dda Fix test 2017-01-15 16:13:23 +01:00
jcherqui 0549fb40d2 Add 1337x.to engine 2017-01-15 16:13:23 +01:00
Adam Tauber 108392f8da [fix] skip non-complete google news results 2017-01-10 11:03:05 +01:00
Adam Tauber 0d4da30c7f [enh] add instant answers to google engine 2017-01-05 17:20:12 +01:00
Adam Tauber 525e5d275c Merge pull request #801 from dalf/extract_text
[fix] extract_text: use html.tostring instead html_to_text.
2017-01-02 12:36:50 +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
Adam Tauber 6bf9c398a7 [fix] use english as default language in bing
If no language is specified, bing returns results with multiple languages
for one query which isn't really useful. Setting english as default
insted if nothing.
2016-12-30 18:17:14 +01:00
marc 1175b3906f change language list to only include languages with a minimum of engines
that support them.
users can still query lesser supported through the :lang_code bang.
2016-12-29 01:55:30 -06:00
Adam Tauber 8bff42f049 Merge branch 'master' into languages 2016-12-28 20:00:53 +01:00
Adam Tauber ea034fafa9 [fix] proper engine init 2016-12-27 17:55:44 +01:00
Adam Tauber a605377c40 [enh] explicit engine init 2016-12-27 17:31:14 +01:00
Adam Tauber b6fc154616 [enh] add searx engine 2016-12-24 22:23:36 +01:00
Adam Tauber 0171db5c3f [fix] handle missing images in google news 2016-12-23 12:59:52 +01:00
marc 7fba3d1179 Merge branch 'master' into languages 2016-12-16 22:14:36 -06:00
marc 4a1ff56389 minor fixes in utils/fetch_languages.py 2016-12-16 22:14:14 -06:00
Adam Tauber 19cd2bf3b5 [fix] re-enable ssl verification for searchcode
closes #784
2016-12-16 15:21:27 +01:00
marc af35eee10b tests for _fetch_supported_languages in engines
and refactor method to make it testable without making requests
2016-12-15 00:40:21 -06:00
marc e0c270bd72 tests for language support in engines 2016-12-13 23:51:15 -06:00
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.
2016-12-13 19:58:10 -06:00
marc 92c6e88ad3 small fixes 2016-12-13 19:56:59 -06:00
marc a11948c71b Add language support for more engines. 2016-12-13 19:32:43 -06:00
marc c677aee58a filter langauges 2016-12-13 19:32:00 -06:00
marc 149802c569 [enh] add supported_languages on engines and auto-generate languages.py 2016-12-13 19:32:00 -06:00
Noémi Ványi b034356825 add year filter to engines with time range support && tests
Following engines does not support "Last year":
 * Bing News
 * DeviantArt
 * DuckDuckGo
 * Yahoo
 * YouTube (noapi)
2016-12-11 16:58:31 +01:00
Noémi Ványi c59c76e6ee add year to time range to engines which support "Last year"
Engines:
 * Bing images
 * Flickr (noapi)
 * Google
 * Google Images
 * Google News
2016-12-11 16:58:31 +01:00
Thomas Renard 16c40ffefd htmlize yacy contents 2016-12-11 14:05:07 +01:00
Noémi Ványi 553f3a3a1a fix xpath of yandex 2016-12-11 11:58:49 +01:00
Adam Tauber 4676e1dcde [fix] remove result escaping from engine 2016-12-11 03:24:26 +01:00
Adam Tauber 1a82ed6f54 [mod] 500px rewrite 2016-12-11 03:22:42 +01:00
Adam Tauber f6e9c074bb [fix] vimeo engine change follow-up 2016-12-11 02:33:04 +01:00
Adam Tauber a2c94895c1 [fix] google news engine change follow-up 2016-12-11 01:03:52 +01:00
Adam Tauber c3dcebb778 [fix] remove html tags from qwant results 2016-12-10 21:31:05 +01:00
Adam Tauber e12a137a2f [fix] unicode response in deezer and spotify 2016-12-10 00:30:34 +01:00
Alexandre Flament e48f07a367 Merge branch 'master' into searchpy2 2016-12-09 23:11:45 +01:00
Adam Tauber 72a217f983 [mod] return empty string on missing osm title
Sometimes openstreetmap returns with None as title. In these cases use an empty
string instead.
2016-12-09 19:53:54 +01:00
Adam Tauber fdf63940e8 [fix] tests ++ flickr error 2016-12-09 19:11:22 +01:00
Adam Tauber 16bdc0baf4 [mod] do not escape html content in engines 2016-12-09 18:59:19 +01:00
Adam Tauber 55dc538398 [mod] move load_module function to utils 2016-11-19 17:51:19 +01:00
Adam Tauber 43ddbc60da [fix] pep8 2016-11-14 16:09:16 +01:00
Adam Tauber 16f2e346b3 [fix] bing unicode issue part III. 2016-11-14 15:52:29 +01:00
Adam Tauber 1176505fa4 [fix] bing character encoding - closes #760 2016-11-14 15:47:42 +01:00
Adam Tauber 17b08d096c [fix] unicode search expression for bing 2016-11-07 22:33:17 +01:00
Adam Tauber 16ff8d06c7 [fix] bing paging and language support
see https://msdn.microsoft.com/en-us/library/ff795620.aspx for bing
specific search operators

closes #755
2016-11-07 22:30:20 +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
Noémi Ványi 1490d6bc93 add time range search for flickr 2016-11-01 17:58:29 +01:00
Noémi Ványi 5c02b9ef31 add time range support for bing images 2016-11-01 17:58:29 +01:00
Noémi Ványi d2e0cbafb2 add time range search for youtube noapi 2016-11-01 17:58:29 +01:00
Noémi Ványi f70d405202 add time range search for bing news 2016-11-01 17:58:29 +01:00
Noémi Ványi 53c9fde992 fix kickass torrents engine 2016-10-22 05:27:18 +02:00
Alexander Minges 3c5883408c initial commit of pdbe engine
Adds support for queries to the Protein Data Bank Europe (PDBe).
2016-10-13 00:40:38 +02:00
Pydo 55a5b686ed Merge branch 'master' of https://github.com/asciimoo/searx into feature/seedpeer-engine-integration
Resolved conflict searx/settings.yml
2016-10-01 10:46:18 -04:00
Adam Tauber 86daef2063 [fix] do not allow underscore in engine names - closes #708 2016-09-28 22:30:05 +02:00
marc d1d4ed4376 [fix] results with digbit don't truncate anymore 2016-09-20 16:11:33 -05:00
firebovine e145fdb86d #607 - noapi fix 2016-09-10 17:43:12 -04:00
Lorenzo J. Lucchini a8907224a1 Improving Wolfram Alpha search hit content
Making WA search hits contain
- the (parsed) input inside the "title" instead of just "Wolfram|Alpha", to better match other hit titles and to confirm correct parsing of input to the user
- the first output field that contains any text (skipping ones that are only pictures; this is usually the most meaningful "result" field) instead of the raw input as the "content", making it additionally possible to obtain WA computations from JSON API calls
2016-09-10 17:42:19 -04:00
marc 09ee2aa69d [fix] Result text in Wolfram|Alpha (#607) 2016-09-10 17:42:04 -04:00
Adam Tauber 3144ec1d59 [fix] unicode urls 2016-09-06 17:17:42 +02:00
potato 983415bc38 [enh] is_valid_lang moved to utils 2016-09-06 16:43:48 +02:00
potato b7d578ae80 [enh] engine header comments 2016-09-06 16:36:04 +02:00
potato 8c72a22757 [enh] api_key usage, disable the engine by default 2016-09-06 16:12:34 +02:00
potato c051e6a2c3 [fix] pep8 2016-09-06 15:44:05 +02:00
potato ab471fd13b [enh] mymemory translated engine added for multi-word translations 2016-09-06 15:40:07 +02:00
potato 22bd39fd42 [fix] only 1-word search triggers the engine 2016-09-06 15:07:47 +02:00
potato 7bf1013c15 [enh] removed missing params; [fix] pep8 2016-09-06 14:24:08 +02:00
potato bc806bfab1 [fix] no lambda anymore, cgi.escape 2016-09-06 14:12:46 +02:00
potato 5416f0f248 [enh] dictionary engine renamed to dictzone 2016-09-06 12:50:56 +02:00
potato 84ff6e289e [enh] filter non-existing language code/name containing requests 2016-09-06 12:46:18 +02:00
potato b808a2e266 [fix] don't merge with suggestions 2016-09-06 12:37:26 +02:00
potato 3f4cc2146c [enh] return results instead of answers 2016-09-06 12:34:20 +02:00