Martin Fischer
3f77ff29a3
[fix] plugin JS/CSS dependencies depend on themes
...
SearXNG supports plugins. Plugins can declare JavaScript and CSS
dependencies. Currently three plugins declare such dependencies:
* search_on_category_select (on by default)
* vim_hotkeys
* infinite_scroll
If a user enables a plugin its JavaScript and CSS dependencies are
embedded into every page. Sounds simple right?
Ironically in the Simple theme things start to get complicated:
The scripts were originally written for the Oscar theme and thus depend
on jQuery (which isn't loaded in the Simple theme) and look for certain
element identifiers (which aren't present in the Simple theme). So how
did the plugins actually work with the simple theme?
The simple theme just didn't embed the plugin dependencies (which wasn't
even documented anywhere). Instead the simple theme checked if the paths
contained a certain script path, then set an attribute, which 00_init.js
detected and turned into a boolean, which was then used to enable
vanilla-JS reimplementations of the plugins.
This commit ends this horrible hack (and fixes #769 ). The necessary
changes to the Simple theme are introduced in the next commit.
2022-01-18 19:03:15 +01:00
Martin Fischer
6d43cf7952
[typing] add optional attrs to Plugin
2022-01-17 11:42:48 +01:00
Martin Fischer
bb06758a7b
[refactor] add type hints & remove Setting._post_init
...
Previously the Setting classes used a horrible _post_init
hack that prevented proper type checking.
2022-01-06 14:21:14 +01:00
Markus Heiser
3d96a9839a
[format.python] initial formatting of the python code
...
This patch was generated by black [1]::
make format.python
[1] https://github.com/psf/black
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-12-27 09:26:22 +01:00
Markus Heiser
fcdc2c2cd2
[format.python] disable py code formatting for some hunks of code
...
Disable the python code formatting from python-black, where the readability of
code suffers by formatting.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-12-27 09:16:03 +01:00
Markus Heiser
5731b6b700
[mod] searx.plugins.prepare_package_resources() - use generators
...
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-10-07 18:41:56 +02:00
Markus Heiser
aa5a5147b2
[fix] searx.plugins.initialize() - don't miss module & module-name
...
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-10-07 18:41:41 +02:00
Alexandre Flament
2b4fef7118
plugins: refactor initialization
...
add a new function "init" call when the app starts.
The function can:
* return False to disable the plugin.
* modify the Flask app.
2021-10-06 19:18:19 +02:00
Alexandre Flament
0f43b39eac
[enh] add hostname_replace plugin
...
* backport of https://github.com/searx/searx/pull/2724
* allow to remove result if the replacement is the boolean value false
2021-09-11 13:23:06 +02:00
Alexandre Flament
3f3b5d6181
[mod] plugins: minor change
...
required attributes: display a different message
when the attribute has the wrong type
2021-08-14 18:03:31 +02:00
Alexandre Flament
881659ca9d
[mod] oscar theme: /preferences : HTML detail order match visual tabs
...
First details about the general tab, then detail about UI tab, etc...
No functionnal change
2021-06-17 15:29:07 +02:00
Alexandre Flament
f83b64270c
[mod] oscar theme /preferences: reorganize the preferences
...
close #115
2021-06-17 15:29:07 +02:00
Alexandre Flament
4b07df62e5
[mod] move all default settings into searx.settings_defaults
2021-06-01 08:10:15 +02:00
Markus Heiser
247c46c6b0
[drop] plugin HTTPS rewrite - rule base is to old (update is to big)
...
The usefulness of the _HTTPS rewrite_ plugin is questionable:
- the 36 rule files have not been updated since 2015 [1]
- actual there are 23760 rule files in the https-everywhere repo [2]
For the first, we can remove this plugin. For a complete new implementation, it
might be good to know that there is a project "https-everywhere : Privacy for
Pythons" [3]
related: https://github.com/return42/searx-next/issues/8
[1] https://github.com/return42/searx-next/tree/d187a1d/searx/plugins/https_rules
[2] https://github.com/EFForg/https-everywhere/tree/master/src/chrome/content/rules
[3] https://github.com/jayvdb/https-everywhere-py
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-04-22 11:47:16 +02:00
Alexandre Flament
b00d108673
[mod] pylint: numerous minor code fixes
2020-12-01 15:21:19 +01:00
Alexandre Flament
3038052c79
[mod] remove unused import
...
use
from searx.engines.duckduckgo import _fetch_supported_languages, supported_languages_url # NOQA
so it is possible to easily remove all unused import using autoflake:
autoflake --in-place --recursive --remove-all-unused-imports searx tests
2020-11-14 14:11:02 +01:00
Marc Abonce Seguin
32957cdf49
add Ahmia filter plugin for onion results
2020-10-25 17:59:43 -07:00
Venca24
c9593c8ffd
[enh] add plugin converting strings into hash digests
2020-10-23 21:25:10 +02:00
Adam Tauber
a05c660e30
[enh] add ability to set enabled plugins from settings - closes #1613 #778
2020-10-09 14:12:31 +02:00
Dalf
1022228d95
Drop Python 2 (1/n): remove unicode string and url_utils
2020-09-10 10:39:04 +02:00
Noémi Ványi
74013c212a
Revert "[enh] new plugin to open results on new browser tabs"
...
This reverts commit ab6a7601cb
.
Closes #2037
2020-07-29 22:10:16 +02:00
Adam Tauber
93ac4db312
[enh] copy atime_ns and mtime_ns of external plugin resources
2020-07-28 13:57:57 +02:00
Adam Tauber
164e4725f3
[mod] add dedicated directory to external plugins with gitignore file
2020-07-28 13:10:40 +02:00
Adam Tauber
3f60bb470a
[fix] correct imported modules
2020-07-28 13:10:40 +02:00
Adam Tauber
dff879d07d
[fix] resolve minor review issues
2020-07-28 13:10:40 +02:00
Adam Tauber
e45a269ecb
[mod] create static directory for each external plugin
2020-07-28 13:10:40 +02:00
Adam Tauber
81e9c75534
[fix] pep8
2020-07-28 13:10:40 +02:00
Adam Tauber
7b93d11d84
[fix] add plugin sha sum check to be able to copy updated resources
2020-07-28 13:10:40 +02:00
Adam Tauber
1f2dc6c647
[enh] add external plugin support
2020-07-28 13:10:40 +02:00
jibe-b
575159b194
[enh] oa_doi_rewrite plugin broadens doai_rewrite
2017-11-01 14:22:26 +01:00
Adam Tauber
52e615dede
[enh] py3 compatibility
2017-05-15 12:02:30 +02: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
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
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
ab6a7601cb
[enh] new plugin to open results on new browser tabs
2016-02-10 18:04:04 +01: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
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
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
bf5d6f56c6
[enh] plugin attribute type check
2015-03-14 20:22:26 +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