Commit Graph

84 Commits

Author SHA1 Message Date
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
Noemi Vanyi
aa227180e2 remove self info answers from pages after first one 2016-08-27 16:45:25 +02:00
David A Roberts
678b9e994a [enh] infinite scroll
resolves #649
2016-08-11 19:16:42 +10:00
David A Roberts
117d36b66e Add Crossref search engine and DOAI rewrite plugin 2016-08-10 11:15:30 +10:00
stepshal
b3ab221b98 Fix anomalous backslash in string 2016-07-11 23:53:13 +07:00
Adam Tauber
257e52954a [enh][fix] update to latest dependencies ++ fix tests & travis test runner
WARNING: dependency changes
2016-07-04 22:46:43 +02:00
Kirill Isakov
3246541bdc [WIP] Add vim-hotkeys plugin 2016-04-23 22:26:02 +06:00
Adam Tauber
4e5af8d87b [mod] move plugin static files to static/plugins 2016-02-10 18:06:11 +01:00
Adam Tauber
ab6a7601cb [enh] new plugin to open results on new browser tabs 2016-02-10 18:04:04 +01:00
Adam Tauber
bd22e9a336 [fix] pep8 compatibilty 2016-01-18 12:47:31 +01:00
Adam Tauber
d2fd56612c [fix] rename after result refactor 2015-10-21 10:50:00 +02:00
Adam Tauber
6424a7702d Merge branch 'remove_trackers_plugin' of https://github.com/Cqoicebordel/searx into Cqoicebordel-remove_trackers_plugin
Conflicts:
	searx/plugins/__init__.py
2015-06-21 16:56:00 +02:00
Cqoicebordel
8911233e3e Use parsed_url 2015-06-18 14:27:15 +02:00
Cqoicebordel
e93f5314d7 A bit of cleanup of the code
- regexes in a array
- regexes applied only on the last part of the url
2015-06-15 20:34:02 +02:00
Luc Didry
0fe362bacf Change self plugin to self_info + change self_info description 2015-06-15 13:36:38 +02:00
Luc Didry
41fd748cdf Merge self_ip and self_useragent into one plugin 2015-06-15 10:22:37 +02:00
Luc Didry
538029dc14 Add a self user agent plugin
Just like with the "ip" query, duckduckgo gives the server's
information with the "user agent" query.
This corrects this behavior by adding a plugin based on self_ip.py plugin.
2015-06-14 21:08:38 +02:00
Cqoicebordel
617495cca8 Add a plugin to remove trackers from results URLs 2015-06-09 16:16:07 +02:00
Adam Tauber
3683b35877 [fix] plugin description 2015-05-02 23:54:38 +02:00
Adam Tauber
ff68546c69 [mod] enable category select plugin by default 2015-04-26 18:57:03 +02:00
Adam Tauber
33516256fd [fix] load https rules 2015-04-13 00:40:44 +02:00
Adam Tauber
d2a636f75d [mod] https rewrite pluginification 2015-04-13 00:30:12 +02:00
Adam Tauber
146928a749 [doc] plugin license infos 2015-04-13 00:08:04 +02:00
Adam Tauber
973c97c85b [enh] new plugin: search on category select (currently only in oscar theme)
TODO
purge mootools from default/courgette and integrate jquery ++ this theme
2015-04-12 19:27:48 +02:00
Adam Tauber
dd84814b68 [enh] plugins: client side dependency support 2015-04-12 19:24:01 +02:00
Adam Tauber
54f1bc0425 [fix] call ip plugin as a post search callback 2015-04-07 11:07:46 +02:00
Adam Tauber
a57a011e94 [fix] remove ip plugin pre_search override - closes #275 2015-03-16 12:48:53 +01:00
Adam Tauber
bf5d6f56c6 [enh] plugin attribute type check 2015-03-14 20:22:26 +01:00
Adam Tauber
13ea0a20ae [enh] gettext in self ip plugin 2015-03-14 19:45:15 +01:00
Adam Tauber
9eeb36c787 [enh] selfip plugin description 2015-03-11 01:44:33 +01:00
Adam Tauber
9cb66be29c [enh] plugin id 2015-03-11 01:42:25 +01:00
Adam Tauber
cae22bfc76 [enh] per user plugin switch 2015-03-10 20:44:02 +01:00
Adam Tauber
00cc4dcbf4 [enh] plugin support basics ++ self ip plugin 2015-03-10 19:55:22 +01:00