Browse Source

Merge branch 'master' of https://github.com/asciimoo/searx into filtron

Markus Heiser 4 years ago
parent
commit
1fc0e9ddc5

+ 6 - 0
searx/settings.yml

@@ -24,6 +24,12 @@ ui:
     default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
     theme_args :
         oscar_style : logicodev # default style of oscar
+#   categories_order :
+#     - general
+#     - files
+#     - map
+#     - it
+#     - science
 
 # searx supports result proxification using an external service: https://github.com/asciimoo/morty
 # uncomment below section if you have running morty proxy

+ 1 - 1
searx/templates/courgette/base.html

@@ -29,7 +29,7 @@
             searx.autocompleter = {% if autocomplete %}true{% else %}false{% endif %};
         </script>
     </head>
-    <body>
+    <body class="{{ endpoint }}_endpoint" >
         <div id="container">
             {% block content %}
             {% endblock %}

+ 1 - 1
searx/templates/legacy/base.html

@@ -20,7 +20,7 @@
         <link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ url_for('opensearch') }}"/>
         {% endblock %}
     </head>
-    <body>
+    <body class="{{ endpoint }}_endpoint" >
         <div id="container">
             {% block content %}
             {% endblock %}

+ 1 - 1
searx/templates/oscar/base.html

@@ -47,7 +47,7 @@
         </style>
     </noscript>
 </head>
-<body>
+<body class="{{ endpoint }}_endpoint" >
     {% include 'oscar/navbar.html' %}
 
     <div class="container">

+ 1 - 1
searx/templates/simple/base.html

@@ -32,7 +32,7 @@
   {% endblock %}
   <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}" />
 </head>
-<body>
+<body class="{{ endpoint }}_endpoint" >
   <main id="main_{{  self._TemplateReference__context.name|replace("simple/", "")|replace(".html", "") }}">
     {% if errors %}
         <div class="dialog-error" role="alert">

+ 16 - 9
searx/webapp.py

@@ -355,17 +355,12 @@ def render(template_name, override_theme=None, **kwargs):
                              if (engine_name, category) not in disabled_engines)
 
     if 'categories' not in kwargs:
-        kwargs['categories'] = ['general']
-        kwargs['categories'].extend(x for x in
-                                    sorted(categories.keys())
-                                    if x != 'general'
-                                    and x in enabled_categories)
+        kwargs['categories'] = [x for x in
+                                _get_ordered_categories()
+                                if x in enabled_categories]
 
     if 'all_categories' not in kwargs:
-        kwargs['all_categories'] = ['general']
-        kwargs['all_categories'].extend(x for x in
-                                        sorted(categories.keys())
-                                        if x != 'general')
+        kwargs['all_categories'] = _get_ordered_categories()
 
     if 'selected_categories' not in kwargs:
         kwargs['selected_categories'] = []
@@ -430,6 +425,7 @@ def render(template_name, override_theme=None, **kwargs):
     kwargs['brand'] = brand
 
     kwargs['scripts'] = set()
+    kwargs['endpoint'] = 'results' if 'q' in kwargs else request.endpoint
     for plugin in request.user_plugins:
         for script in plugin.js_dependencies:
             kwargs['scripts'].add(script)
@@ -443,6 +439,17 @@ def render(template_name, override_theme=None, **kwargs):
         '{}/{}'.format(kwargs['theme'], template_name), **kwargs)
 
 
+def _get_ordered_categories():
+    ordered_categories = []
+    if 'categories_order' not in settings['ui']:
+        ordered_categories = ['general']
+        ordered_categories.extend(x for x in sorted(categories.keys()) if x != 'general')
+        return ordered_categories
+    ordered_categories = settings['ui']['categories_order']
+    ordered_categories.extend(x for x in sorted(categories.keys()) if x not in ordered_categories)
+    return ordered_categories
+
+
 @app.before_request
 def pre_request():
     request.start_time = time()