diff --git a/.vscode/settings.json b/.vscode/settings.json index ed0e3d47c..01465bd5a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,22 +1,24 @@ { - "python.testing.unittestArgs": [ - "-v", - "-s", - "./tests", - "-p", - "test_*.py" - ], - "python.testing.pytestEnabled": false, - "python.testing.unittestEnabled": true, - "[less]": { - "editor.tabSize": 2, - "editor.insertSpaces": true - }, - "[python]"{ - "editor.tabSize": 4, - "editor.insertSpaces": true - }, - "cSpell.words": [ - "kvan" - ] + "python.testing.unittestArgs": [ + "-v", + "-s", + "./tests", + "-p", + "test_*.py" + ], + "python.testing.pytestEnabled": false, + "python.testing.unittestEnabled": true, + "[less]": { + "editor.tabSize": 2, + "editor.insertSpaces": true + }, + "[python]"{ + "editor.tabSize": 4, + "editor.insertSpaces": true + }, + "cSpell.words": [ + "kvan", + "searx", + "searxng" + ] } \ No newline at end of file diff --git a/searx/engines/searx_engine.py b/searx/engines/searx_engine.py index 84a8e6449..c388d4983 100644 --- a/searx/engines/searx_engine.py +++ b/searx/engines/searx_engine.py @@ -49,7 +49,7 @@ def response(resp): response_json = loads(resp.text) results = response_json['results'] - for i in ('answers', 'infoboxes'): + for i in ('answers', 'infoboxes', 'chat_box'): results.extend(response_json[i]) results.extend({'suggestion': s} for s in response_json['suggestions']) diff --git a/searx/plugins/chat.py b/searx/plugins/chat.py new file mode 100644 index 000000000..fa51917f8 --- /dev/null +++ b/searx/plugins/chat.py @@ -0,0 +1,17 @@ +from searx.search import SearchWithPlugins + + +name = "Chat Plugin" +description = "Similar to bing GPT or google bard in their respective searches" +default_on = False +preference_section = 'general' + +def post_search(request, search: SearchWithPlugins) -> None: + """Called after the search is done.""" + search_request = search.search_query + container = search.result_container + # container.infoboxes.append(container.infoboxes[0]) + container.chat_box = container.infoboxes + print(search_request) + + print("HELLO WORLD =====================================================================") \ No newline at end of file diff --git a/searx/results.py b/searx/results.py index 471d16981..3f3ada444 100644 --- a/searx/results.py +++ b/searx/results.py @@ -157,6 +157,7 @@ class ResultContainer: __slots__ = ( '_merged_results', + 'chat_box', 'infoboxes', 'suggestions', 'answers', @@ -176,6 +177,7 @@ class ResultContainer: super().__init__() self._merged_results = [] self.infoboxes = [] + self.chat_box = [] self.suggestions = set() self.answers = {} self.corrections = set() diff --git a/searx/templates/kvanDark/results.html b/searx/templates/kvanDark/results.html index 031b72a45..c6cdf7c82 100644 --- a/searx/templates/kvanDark/results.html +++ b/searx/templates/kvanDark/results.html @@ -10,9 +10,9 @@ {% block title %}{% if query_in_title %}{{- q|e }} - {% endif %}{% endblock %} {% block meta %} {% endblock %} + href="{{ url_for('search', _external=True) }}?q={{ q|urlencode }}&categories={{ selected_categories|join(" ,") | + replace(' ',' +') }}&pageno={{ pageno }}&time_range={{ time_range }}&language={{ current_language + }}&safesearch={{ safesearch }}&format=rss">{% endblock %} {% block content %} {% include 'kvanDark/search.html' %} @@ -23,162 +23,173 @@ {% endif %}
- {% if answers -%} - - {%- endif %} + {% if answers -%} + + {%- endif %} - -
- {% for result in results %} - {% if result.open_group and not only_template %}
{% endif %} - {% set index = loop.index %} - {% include get_result_template('kvanDark', result['template']) %} - {% if result.close_group and not only_template %}
{% endif %} - {% endfor %} - {% if not results and not answers %} - {% include 'kvanDark/messages/no_results.html' %} - {% endif %} -
-
- {{ icon_small('chevron-up-outline') }} -
- {% if paging %} - - {% endif %} +
+ {% for result in results %} + {% if result.open_group and not only_template %}
{% endif %} + {% set index = loop.index %} + {% include get_result_template('kvanDark', result['template']) %} + {% if result.close_group and not only_template %}
{% endif %} + {% endfor %} + {% if not results and not answers %} + {% include 'kvanDark/messages/no_results.html' %} + {% endif %} +
+
+ {{ icon_small('chevron-up-outline') }} +
+ {% if paging %} + + {% endif %}
{% endblock %} \ No newline at end of file diff --git a/searx/webapp.py b/searx/webapp.py index 53ca96785..1ad9d5e55 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -779,6 +779,7 @@ def search(): answers = result_container.answers, corrections = correction_urls, infoboxes = result_container.infoboxes, + chat_box = result_container.chat_box, engine_data = result_container.engine_data, paging = result_container.paging, unresponsive_engines = webutils.get_translated_errors( diff --git a/searx/webutils.py b/searx/webutils.py index bfc6b22f7..4c417eaac 100644 --- a/searx/webutils.py +++ b/searx/webutils.py @@ -164,6 +164,7 @@ def get_json_response(sq: SearchQuery, rc: ResultContainer) -> str: 'answers': list(rc.answers), 'corrections': list(rc.corrections), 'infoboxes': rc.infoboxes, + 'chat_box': rc.chat_box, 'suggestions': list(rc.suggestions), 'unresponsive_engines': get_translated_errors(rc.unresponsive_engines), }