Browse Source

Merge pull request #1475 from return42/Emojipedia

[mod] Add engine for Emojipedia
Markus Heiser 2 years ago
parent
commit
4e05197444
3 changed files with 97 additions and 12 deletions
  1. 24 12
      searx/data/engine_descriptions.json
  2. 67 0
      searx/engines/emojipedia.py
  3. 6 0
      searx/settings.yml

File diff suppressed because it is too large
+ 24 - 12
searx/data/engine_descriptions.json


+ 67 - 0
searx/engines/emojipedia.py

@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# lint: pylint
+"""Emojipedia
+
+Emojipedia is an emoji reference website which documents the meaning and
+common usage of emoji characters in the Unicode Standard.  It is owned by Zedge
+since 2021. Emojipedia is a voting member of The Unicode Consortium.[1]
+
+[1] https://en.wikipedia.org/wiki/Emojipedia
+"""
+
+from urllib.parse import urlencode
+from lxml import html
+
+from searx.utils import (
+    eval_xpath_list,
+    eval_xpath_getindex,
+    extract_text,
+)
+
+about = {
+    "website": 'https://emojipedia.org',
+    "wikidata_id": 'Q22908129',
+    "official_api_documentation": None,
+    "use_official_api": False,
+    "require_api_key": False,
+    "results": 'HTML',
+}
+
+categories = []
+paging = False
+time_range_support = False
+
+base_url = 'https://emojipedia.org'
+search_url = base_url + '/search/?{query}'
+
+
+def request(query, params):
+    params['url'] = search_url.format(
+        query=urlencode({'q': query}),
+    )
+    return params
+
+
+def response(resp):
+    results = []
+
+    dom = html.fromstring(resp.text)
+
+    for result in eval_xpath_list(dom, "/html/body/div[2]/div[1]/ol/li"):
+
+        extracted_desc = extract_text(eval_xpath_getindex(result, './/p', 0))
+
+        if 'No results found.' in extracted_desc:
+            break
+
+        link = eval_xpath_getindex(result, './/h2/a', 0)
+
+        url = base_url + link.attrib.get('href')
+        title = extract_text(link)
+        content = extracted_desc
+
+        res = {'url': url, 'title': title, 'content': content}
+
+        results.append(res)
+
+    return results

+ 6 - 0
searx/settings.yml

@@ -544,6 +544,12 @@ engines:
     timeout: 3.0
     timeout: 3.0
     disabled: true
     disabled: true
 
 
+  - name: emojipedia
+    engine: emojipedia
+    timeout: 4.0
+    shortcut: em
+    disabled: true
+
   - name: tineye
   - name: tineye
     engine: tineye
     engine: tineye
     shortcut: tin
     shortcut: tin

Some files were not shown because too many files changed in this diff