Browse Source

[feat] engine: implementation of mwmbl

Bnyro 1 year ago
parent
commit
c59ae91b76
2 changed files with 47 additions and 0 deletions
  1. 41 0
      searx/engines/mwmbl.py
  2. 6 0
      searx/settings.yml

+ 41 - 0
searx/engines/mwmbl.py

@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# lint: pylint
+"""mwmbl (general)
+"""
+
+from urllib.parse import urlencode
+
+about = {
+    "website": 'https://github.com/mwmbl/mwmbl',
+    "official_api_documentation": None,
+    "use_official_api": True,
+    "require_api_key": False,
+    "results": 'JSON',
+}
+paging = False
+categories = ['general']
+
+api_url = "https://api.mwmbl.org"
+
+
+def request(query, params):
+    params['url'] = f"{api_url}/search?{urlencode({'s': query})}"
+    return params
+
+
+def response(resp):
+    results = []
+
+    json_results = resp.json()
+
+    for result in json_results:
+        title_parts = [title['value'] for title in result['title']]
+        results.append(
+            {
+                'url': result['url'],
+                'title': ''.join(title_parts),
+                'content': result['extract'][0]['value'],
+            }
+        )
+
+    return results

+ 6 - 0
searx/settings.yml

@@ -1008,6 +1008,12 @@ engines:
   #   collection: 'reviews'  # name of the db collection
   #   collection: 'reviews'  # name of the db collection
   #   key: 'name'  # key in the collection to search for
   #   key: 'name'  # key in the collection to search for
 
 
+  - name: mwmbl
+    engine: mwmbl
+    # api_url: https://api.mwmbl.org
+    shortcut: mwm
+    disabled: true
+
   - name: npm
   - name: npm
     engine: json_engine
     engine: json_engine
     paging: true
     paging: true