forked from Icycoide/searxng
[mod] searx uses flask framework only in webapp.py. Make migration to another framework easier.
This commit is contained in:
parent
3d8c9bab96
commit
84a2c97a65
4 changed files with 21 additions and 24 deletions
|
@ -63,9 +63,9 @@ class PluginStore():
|
|||
plugin.id = plugin.name.replace(' ', '_')
|
||||
self.plugins.append(plugin)
|
||||
|
||||
def call(self, plugin_type, request, *args, **kwargs):
|
||||
def call(self, ordered_plugin_list, plugin_type, request, *args, **kwargs):
|
||||
ret = True
|
||||
for plugin in request.user_plugins:
|
||||
for plugin in ordered_plugin_list:
|
||||
if hasattr(plugin, plugin_type):
|
||||
ret = getattr(plugin, plugin_type)(request, *args, **kwargs)
|
||||
if not ret:
|
||||
|
|
|
@ -395,19 +395,20 @@ class SearchWithPlugins(Search):
|
|||
|
||||
"""Similar to the Search class but call the plugins."""
|
||||
|
||||
def __init__(self, search_query, request):
|
||||
def __init__(self, search_query, ordered_plugin_list, request):
|
||||
super(SearchWithPlugins, self).__init__(search_query)
|
||||
self.ordered_plugin_list = ordered_plugin_list
|
||||
self.request = request
|
||||
|
||||
def search(self):
|
||||
if plugins.call('pre_search', self.request, self):
|
||||
if plugins.call(self.ordered_plugin_list, 'pre_search', self.request, self):
|
||||
super(SearchWithPlugins, self).search()
|
||||
|
||||
plugins.call('post_search', self.request, self)
|
||||
plugins.call(self.ordered_plugin_list, 'post_search', self.request, self)
|
||||
|
||||
results = self.result_container.get_ordered_results()
|
||||
|
||||
for result in results:
|
||||
plugins.call('on_result', self.request, self, result)
|
||||
plugins.call(self.ordered_plugin_list, 'on_result', self.request, self, result)
|
||||
|
||||
return self.result_container
|
||||
|
|
|
@ -419,7 +419,7 @@ def index():
|
|||
try:
|
||||
search_query = get_search_query_from_webapp(request.preferences, request.form)
|
||||
# search = Search(search_query) # without plugins
|
||||
search = SearchWithPlugins(search_query, request)
|
||||
search = SearchWithPlugins(search_query, request.user_plugins, request)
|
||||
result_container = search.search()
|
||||
except:
|
||||
request.errors.append(gettext('search error'))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue