We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
YaCy Public Instance 
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SearXNG -->

**Working URL to the engine**
<!-- Please check if the engine is responding correctly before submitting it. -->
https://yacy.searchlab.eu/
**Why do you want to add this engine?**
<!-- What's special about this engine? Is it open source or libre? -->
Currently it seems support for YaCy is limited to local nodes, using a public instance of YaCy maintained by the team that develops it is a solution for end users who would like to query yacy through their searxng instance of choice without it being set up locally.
**Features of this engine**
<!-- Features of this engine: Doesn't track its users, fast, easy to integrate, ... -->
YaCy uses a novel peer-to-peer technology which collectively powers a decentralized webcrawler. It does not rely on SEO or a single entity. It is a federated service that prioritzes index by user query and manual feedback.
**How can SearXNG fetch the information from this engine?**
<!-- List API URL, example code (using the correct markdown) and more
that could be useful for the developers in order to implement this engine.
If you don't know what to write, let this part blank. -->
Hover mouse over 'search interfaces' in top right, at the bottom will be links to numerous types of api calls
**Applicable category of this engine**
<!-- Where should this new engine fit in SearXNG? Current categories in SearXNG:
general, files, images, it, map, music, news, science, social media and videos.
You can add multiple categories at the same time. -->
general, images, potentially more. Click 'more' next to text and image options at homepage.
**Additional context**
<!-- Add any other context about this engine here. -->


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `searx/engines/yacy.py`
Content:
```
1 # SPDX-License-Identifier: AGPL-3.0-or-later
2 # lint: pylint
3 """YaCy_ is a free distributed search engine, built on the principles of
4 peer-to-peer (P2P) networks.
5 
6 API: Dev:APIyacysearch_
7 
8 Releases:
9 
10 - https://github.com/yacy/yacy_search_server/tags
11 - https://download.yacy.net/
12 
13 .. _Yacy: https://yacy.net/
14 .. _Dev:APIyacysearch: https://wiki.yacy.net/index.php/Dev:APIyacysearch
15 
16 Configuration
17 =============
18 
19 The engine has the following (additional) settings:
20 
21 .. code:: yaml
22 
23    - name: yacy
24      engine: yacy
25      shortcut: ya
26      base_url: http://localhost:8090
27      # Yacy search mode. 'global' or 'local'.
28      search_mode: 'global'
29      number_of_results: 5
30      http_digest_auth_user: ""
31      http_digest_auth_pass: ""
32 
33 
34 Implementations
35 ===============
36 """
37 # pylint: disable=fixme
38 
39 from json import loads
40 from urllib.parse import urlencode
41 from dateutil import parser
42 
43 from httpx import DigestAuth
44 
45 from searx.utils import html_to_text
46 
47 # about
48 about = {
49     "website": 'https://yacy.net/',
50     "wikidata_id": 'Q1759675',
51     "official_api_documentation": 'https://wiki.yacy.net/index.php/Dev:API',
52     "use_official_api": True,
53     "require_api_key": False,
54     "results": 'JSON',
55 }
56 
57 # engine dependent config
58 categories = ['general', 'images']  # TODO , 'music', 'videos', 'files'
59 paging = True
60 number_of_results = 5
61 http_digest_auth_user = ""
62 http_digest_auth_pass = ""
63 search_mode = 'global'
64 """Yacy search mode ``global`` or ``local``.  By default, Yacy operates in ``global``
65 mode.
66 
67 ``global``
68   Peer-to-Peer search
69 
70 ``local``
71   Privacy or Stealth mode, restricts the search to local yacy instance.
72 """
73 # search-url
74 base_url = 'http://localhost:8090'
75 search_url = (
76     '/yacysearch.json?{query}'
77     '&startRecord={offset}'
78     '&maximumRecords={limit}'
79     '&contentdom={search_type}'
80     '&resource={resource}'
81 )
82 
83 # yacy specific type-definitions
84 search_types = {'general': 'text', 'images': 'image', 'files': 'app', 'music': 'audio', 'videos': 'video'}
85 
86 
87 def request(query, params):
88     offset = (params['pageno'] - 1) * number_of_results
89     search_type = search_types.get(params.get('category'), '0')
90 
91     params['url'] = base_url + search_url.format(
92         query=urlencode({'query': query}),
93         offset=offset,
94         limit=number_of_results,
95         search_type=search_type,
96         resource=search_mode,
97     )
98 
99     if http_digest_auth_user and http_digest_auth_pass:
100         params['auth'] = DigestAuth(http_digest_auth_user, http_digest_auth_pass)
101 
102     # add language tag if specified
103     if params['language'] != 'all':
104         params['url'] += '&lr=lang_' + params['language'].split('-')[0]
105 
106     return params
107 
108 
109 def response(resp):
110     results = []
111 
112     raw_search_results = loads(resp.text)
113 
114     # return empty array if there are no results
115     if not raw_search_results:
116         return []
117 
118     search_results = raw_search_results.get('channels', [])
119 
120     if len(search_results) == 0:
121         return []
122 
123     for result in search_results[0].get('items', []):
124         # parse image results
125         if resp.search_params.get('category') == 'images':
126             result_url = ''
127             if 'url' in result:
128                 result_url = result['url']
129             elif 'link' in result:
130                 result_url = result['link']
131             else:
132                 continue
133 
134             # append result
135             results.append(
136                 {
137                     'url': result_url,
138                     'title': result['title'],
139                     'content': '',
140                     'img_src': result['image'],
141                     'template': 'images.html',
142                 }
143             )
144 
145         # parse general results
146         else:
147             publishedDate = parser.parse(result['pubDate'])
148 
149             # append result
150             results.append(
151                 {
152                     'url': result['link'],
153                     'title': result['title'],
154                     'content': html_to_text(result['description']),
155                     'publishedDate': publishedDate,
156                 }
157             )
158 
159         # TODO parse video, audio and file results
160 
161     return results
162
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/searx/engines/yacy.py b/searx/engines/yacy.py
--- a/searx/engines/yacy.py
+++ b/searx/engines/yacy.py
@@ -18,17 +18,27 @@
 
 The engine has the following (additional) settings:
 
+- :py:obj:`http_digest_auth_user`
+- :py:obj:`http_digest_auth_pass`
+- :py:obj:`search_mode`
+- :py:obj:`search_type`
+
 .. code:: yaml
 
-   - name: yacy
-     engine: yacy
-     shortcut: ya
-     base_url: http://localhost:8090
-     # Yacy search mode. 'global' or 'local'.
-     search_mode: 'global'
-     number_of_results: 5
-     http_digest_auth_user: ""
-     http_digest_auth_pass: ""
+  - name: yacy
+    engine: yacy
+    categories: general
+    search_type: text
+    base_url: https://yacy.searchlab.eu
+    shortcut: ya
+
+  - name: yacy images
+    engine: yacy
+    categories: images
+    search_type: image
+    base_url: https://yacy.searchlab.eu
+    shortcut: yai
+    disabled: true
 
 
 Implementations
@@ -55,11 +65,14 @@
 }
 
 # engine dependent config
-categories = ['general', 'images']  # TODO , 'music', 'videos', 'files'
+categories = ['general']
 paging = True
-number_of_results = 5
+number_of_results = 10
 http_digest_auth_user = ""
+"""HTTP digest user for the local YACY instance"""
 http_digest_auth_pass = ""
+"""HTTP digest password for the local YACY instance"""
+
 search_mode = 'global'
 """Yacy search mode ``global`` or ``local``.  By default, Yacy operates in ``global``
 mode.
@@ -70,8 +83,13 @@
 ``local``
   Privacy or Stealth mode, restricts the search to local yacy instance.
 """
+search_type = 'text'
+"""One of ``text``, ``image`` / The search-types ``app``, ``audio`` and
+``video`` are not yet implemented (Pull-Requests are welcome).
+"""
+
 # search-url
-base_url = 'http://localhost:8090'
+base_url = 'https://yacy.searchlab.eu'
 search_url = (
     '/yacysearch.json?{query}'
     '&startRecord={offset}'
@@ -80,13 +98,19 @@
     '&resource={resource}'
 )
 
-# yacy specific type-definitions
-search_types = {'general': 'text', 'images': 'image', 'files': 'app', 'music': 'audio', 'videos': 'video'}
+
+def init(_):
+    valid_types = [
+        'text',
+        'image',
+        # 'app', 'audio', 'video',
+    ]
+    if search_type not in valid_types:
+        raise ValueError('search_type "%s" is  not one of %s' % (search_type, valid_types))
 
 
 def request(query, params):
     offset = (params['pageno'] - 1) * number_of_results
-    search_type = search_types.get(params.get('category'), '0')
 
     params['url'] = base_url + search_url.format(
         query=urlencode({'query': query}),
@@ -122,7 +146,7 @@
 
     for result in search_results[0].get('items', []):
         # parse image results
-        if resp.search_params.get('category') == 'images':
+        if search_type == 'image':
             result_url = ''
             if 'url' in result:
                 result_url = result['url']
@@ -144,12 +168,14 @@
 
         # parse general results
         else:
-            publishedDate = parser.parse(result['pubDate'])
+            publishedDate = None
+            if 'pubDate' in result:
+                publishedDate = parser.parse(result['pubDate'])
 
             # append result
             results.append(
                 {
-                    'url': result['link'],
+                    'url': result['link'] or '',
                     'title': result['title'],
                     'content': html_to_text(result['description']),
                     'publishedDate': publishedDate,

{"golden_diff": "diff --git a/searx/engines/yacy.py b/searx/engines/yacy.py\n--- a/searx/engines/yacy.py\n+++ b/searx/engines/yacy.py\n@@ -18,17 +18,27 @@\n \n The engine has the following (additional) settings:\n \n+- :py:obj:`http_digest_auth_user`\n+- :py:obj:`http_digest_auth_pass`\n+- :py:obj:`search_mode`\n+- :py:obj:`search_type`\n+\n .. code:: yaml\n \n-   - name: yacy\n-     engine: yacy\n-     shortcut: ya\n-     base_url: http://localhost:8090\n-     # Yacy search mode. 'global' or 'local'.\n-     search_mode: 'global'\n-     number_of_results: 5\n-     http_digest_auth_user: \"\"\n-     http_digest_auth_pass: \"\"\n+  - name: yacy\n+    engine: yacy\n+    categories: general\n+    search_type: text\n+    base_url: https://yacy.searchlab.eu\n+    shortcut: ya\n+\n+  - name: yacy images\n+    engine: yacy\n+    categories: images\n+    search_type: image\n+    base_url: https://yacy.searchlab.eu\n+    shortcut: yai\n+    disabled: true\n \n \n Implementations\n@@ -55,11 +65,14 @@\n }\n \n # engine dependent config\n-categories = ['general', 'images']  # TODO , 'music', 'videos', 'files'\n+categories = ['general']\n paging = True\n-number_of_results = 5\n+number_of_results = 10\n http_digest_auth_user = \"\"\n+\"\"\"HTTP digest user for the local YACY instance\"\"\"\n http_digest_auth_pass = \"\"\n+\"\"\"HTTP digest password for the local YACY instance\"\"\"\n+\n search_mode = 'global'\n \"\"\"Yacy search mode ``global`` or ``local``.  By default, Yacy operates in ``global``\n mode.\n@@ -70,8 +83,13 @@\n ``local``\n   Privacy or Stealth mode, restricts the search to local yacy instance.\n \"\"\"\n+search_type = 'text'\n+\"\"\"One of ``text``, ``image`` / The search-types ``app``, ``audio`` and\n+``video`` are not yet implemented (Pull-Requests are welcome).\n+\"\"\"\n+\n # search-url\n-base_url = 'http://localhost:8090'\n+base_url = 'https://yacy.searchlab.eu'\n search_url = (\n     '/yacysearch.json?{query}'\n     '&startRecord={offset}'\n@@ -80,13 +98,19 @@\n     '&resource={resource}'\n )\n \n-# yacy specific type-definitions\n-search_types = {'general': 'text', 'images': 'image', 'files': 'app', 'music': 'audio', 'videos': 'video'}\n+\n+def init(_):\n+    valid_types = [\n+        'text',\n+        'image',\n+        # 'app', 'audio', 'video',\n+    ]\n+    if search_type not in valid_types:\n+        raise ValueError('search_type \"%s\" is  not one of %s' % (search_type, valid_types))\n \n \n def request(query, params):\n     offset = (params['pageno'] - 1) * number_of_results\n-    search_type = search_types.get(params.get('category'), '0')\n \n     params['url'] = base_url + search_url.format(\n         query=urlencode({'query': query}),\n@@ -122,7 +146,7 @@\n \n     for result in search_results[0].get('items', []):\n         # parse image results\n-        if resp.search_params.get('category') == 'images':\n+        if search_type == 'image':\n             result_url = ''\n             if 'url' in result:\n                 result_url = result['url']\n@@ -144,12 +168,14 @@\n \n         # parse general results\n         else:\n-            publishedDate = parser.parse(result['pubDate'])\n+            publishedDate = None\n+            if 'pubDate' in result:\n+                publishedDate = parser.parse(result['pubDate'])\n \n             # append result\n             results.append(\n                 {\n-                    'url': result['link'],\n+                    'url': result['link'] or '',\n                     'title': result['title'],\n                     'content': html_to_text(result['description']),\n                     'publishedDate': publishedDate,\n", "issue": "YaCy Public Instance \n<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SearXNG -->\r\n\r\n**Working URL to the engine**\r\n<!-- Please check if the engine is responding correctly before submitting it. -->\r\nhttps://yacy.searchlab.eu/\r\n**Why do you want to add this engine?**\r\n<!-- What's special about this engine? Is it open source or libre? -->\r\nCurrently it seems support for YaCy is limited to local nodes, using a public instance of YaCy maintained by the team that develops it is a solution for end users who would like to query yacy through their searxng instance of choice without it being set up locally.\r\n**Features of this engine**\r\n<!-- Features of this engine: Doesn't track its users, fast, easy to integrate, ... -->\r\nYaCy uses a novel peer-to-peer technology which collectively powers a decentralized webcrawler. It does not rely on SEO or a single entity. It is a federated service that prioritzes index by user query and manual feedback.\r\n**How can SearXNG fetch the information from this engine?**\r\n<!-- List API URL, example code (using the correct markdown) and more\r\nthat could be useful for the developers in order to implement this engine.\r\nIf you don't know what to write, let this part blank. -->\r\nHover mouse over 'search interfaces' in top right, at the bottom will be links to numerous types of api calls\r\n**Applicable category of this engine**\r\n<!-- Where should this new engine fit in SearXNG? Current categories in SearXNG:\r\ngeneral, files, images, it, map, music, news, science, social media and videos.\r\nYou can add multiple categories at the same time. -->\r\ngeneral, images, potentially more. Click 'more' next to text and image options at homepage.\r\n**Additional context**\r\n<!-- Add any other context about this engine here. -->\r\n\n", "before_files": [{"content": "# SPDX-License-Identifier: AGPL-3.0-or-later\n# lint: pylint\n\"\"\"YaCy_ is a free distributed search engine, built on the principles of\npeer-to-peer (P2P) networks.\n\nAPI: Dev:APIyacysearch_\n\nReleases:\n\n- https://github.com/yacy/yacy_search_server/tags\n- https://download.yacy.net/\n\n.. _Yacy: https://yacy.net/\n.. _Dev:APIyacysearch: https://wiki.yacy.net/index.php/Dev:APIyacysearch\n\nConfiguration\n=============\n\nThe engine has the following (additional) settings:\n\n.. code:: yaml\n\n   - name: yacy\n     engine: yacy\n     shortcut: ya\n     base_url: http://localhost:8090\n     # Yacy search mode. 'global' or 'local'.\n     search_mode: 'global'\n     number_of_results: 5\n     http_digest_auth_user: \"\"\n     http_digest_auth_pass: \"\"\n\n\nImplementations\n===============\n\"\"\"\n# pylint: disable=fixme\n\nfrom json import loads\nfrom urllib.parse import urlencode\nfrom dateutil import parser\n\nfrom httpx import DigestAuth\n\nfrom searx.utils import html_to_text\n\n# about\nabout = {\n    \"website\": 'https://yacy.net/',\n    \"wikidata_id\": 'Q1759675',\n    \"official_api_documentation\": 'https://wiki.yacy.net/index.php/Dev:API',\n    \"use_official_api\": True,\n    \"require_api_key\": False,\n    \"results\": 'JSON',\n}\n\n# engine dependent config\ncategories = ['general', 'images']  # TODO , 'music', 'videos', 'files'\npaging = True\nnumber_of_results = 5\nhttp_digest_auth_user = \"\"\nhttp_digest_auth_pass = \"\"\nsearch_mode = 'global'\n\"\"\"Yacy search mode ``global`` or ``local``.  By default, Yacy operates in ``global``\nmode.\n\n``global``\n  Peer-to-Peer search\n\n``local``\n  Privacy or Stealth mode, restricts the search to local yacy instance.\n\"\"\"\n# search-url\nbase_url = 'http://localhost:8090'\nsearch_url = (\n    '/yacysearch.json?{query}'\n    '&startRecord={offset}'\n    '&maximumRecords={limit}'\n    '&contentdom={search_type}'\n    '&resource={resource}'\n)\n\n# yacy specific type-definitions\nsearch_types = {'general': 'text', 'images': 'image', 'files': 'app', 'music': 'audio', 'videos': 'video'}\n\n\ndef request(query, params):\n    offset = (params['pageno'] - 1) * number_of_results\n    search_type = search_types.get(params.get('category'), '0')\n\n    params['url'] = base_url + search_url.format(\n        query=urlencode({'query': query}),\n        offset=offset,\n        limit=number_of_results,\n        search_type=search_type,\n        resource=search_mode,\n    )\n\n    if http_digest_auth_user and http_digest_auth_pass:\n        params['auth'] = DigestAuth(http_digest_auth_user, http_digest_auth_pass)\n\n    # add language tag if specified\n    if params['language'] != 'all':\n        params['url'] += '&lr=lang_' + params['language'].split('-')[0]\n\n    return params\n\n\ndef response(resp):\n    results = []\n\n    raw_search_results = loads(resp.text)\n\n    # return empty array if there are no results\n    if not raw_search_results:\n        return []\n\n    search_results = raw_search_results.get('channels', [])\n\n    if len(search_results) == 0:\n        return []\n\n    for result in search_results[0].get('items', []):\n        # parse image results\n        if resp.search_params.get('category') == 'images':\n            result_url = ''\n            if 'url' in result:\n                result_url = result['url']\n            elif 'link' in result:\n                result_url = result['link']\n            else:\n                continue\n\n            # append result\n            results.append(\n                {\n                    'url': result_url,\n                    'title': result['title'],\n                    'content': '',\n                    'img_src': result['image'],\n                    'template': 'images.html',\n                }\n            )\n\n        # parse general results\n        else:\n            publishedDate = parser.parse(result['pubDate'])\n\n            # append result\n            results.append(\n                {\n                    'url': result['link'],\n                    'title': result['title'],\n                    'content': html_to_text(result['description']),\n                    'publishedDate': publishedDate,\n                }\n            )\n\n        # TODO parse video, audio and file results\n\n    return results\n", "path": "searx/engines/yacy.py"}], "after_files": [{"content": "# SPDX-License-Identifier: AGPL-3.0-or-later\n# lint: pylint\n\"\"\"YaCy_ is a free distributed search engine, built on the principles of\npeer-to-peer (P2P) networks.\n\nAPI: Dev:APIyacysearch_\n\nReleases:\n\n- https://github.com/yacy/yacy_search_server/tags\n- https://download.yacy.net/\n\n.. _Yacy: https://yacy.net/\n.. _Dev:APIyacysearch: https://wiki.yacy.net/index.php/Dev:APIyacysearch\n\nConfiguration\n=============\n\nThe engine has the following (additional) settings:\n\n- :py:obj:`http_digest_auth_user`\n- :py:obj:`http_digest_auth_pass`\n- :py:obj:`search_mode`\n- :py:obj:`search_type`\n\n.. code:: yaml\n\n  - name: yacy\n    engine: yacy\n    categories: general\n    search_type: text\n    base_url: https://yacy.searchlab.eu\n    shortcut: ya\n\n  - name: yacy images\n    engine: yacy\n    categories: images\n    search_type: image\n    base_url: https://yacy.searchlab.eu\n    shortcut: yai\n    disabled: true\n\n\nImplementations\n===============\n\"\"\"\n# pylint: disable=fixme\n\nfrom json import loads\nfrom urllib.parse import urlencode\nfrom dateutil import parser\n\nfrom httpx import DigestAuth\n\nfrom searx.utils import html_to_text\n\n# about\nabout = {\n    \"website\": 'https://yacy.net/',\n    \"wikidata_id\": 'Q1759675',\n    \"official_api_documentation\": 'https://wiki.yacy.net/index.php/Dev:API',\n    \"use_official_api\": True,\n    \"require_api_key\": False,\n    \"results\": 'JSON',\n}\n\n# engine dependent config\ncategories = ['general']\npaging = True\nnumber_of_results = 10\nhttp_digest_auth_user = \"\"\n\"\"\"HTTP digest user for the local YACY instance\"\"\"\nhttp_digest_auth_pass = \"\"\n\"\"\"HTTP digest password for the local YACY instance\"\"\"\n\nsearch_mode = 'global'\n\"\"\"Yacy search mode ``global`` or ``local``.  By default, Yacy operates in ``global``\nmode.\n\n``global``\n  Peer-to-Peer search\n\n``local``\n  Privacy or Stealth mode, restricts the search to local yacy instance.\n\"\"\"\nsearch_type = 'text'\n\"\"\"One of ``text``, ``image`` / The search-types ``app``, ``audio`` and\n``video`` are not yet implemented (Pull-Requests are welcome).\n\"\"\"\n\n# search-url\nbase_url = 'https://yacy.searchlab.eu'\nsearch_url = (\n    '/yacysearch.json?{query}'\n    '&startRecord={offset}'\n    '&maximumRecords={limit}'\n    '&contentdom={search_type}'\n    '&resource={resource}'\n)\n\n\ndef init(_):\n    valid_types = [\n        'text',\n        'image',\n        # 'app', 'audio', 'video',\n    ]\n    if search_type not in valid_types:\n        raise ValueError('search_type \"%s\" is  not one of %s' % (search_type, valid_types))\n\n\ndef request(query, params):\n    offset = (params['pageno'] - 1) * number_of_results\n\n    params['url'] = base_url + search_url.format(\n        query=urlencode({'query': query}),\n        offset=offset,\n        limit=number_of_results,\n        search_type=search_type,\n        resource=search_mode,\n    )\n\n    if http_digest_auth_user and http_digest_auth_pass:\n        params['auth'] = DigestAuth(http_digest_auth_user, http_digest_auth_pass)\n\n    # add language tag if specified\n    if params['language'] != 'all':\n        params['url'] += '&lr=lang_' + params['language'].split('-')[0]\n\n    return params\n\n\ndef response(resp):\n    results = []\n\n    raw_search_results = loads(resp.text)\n\n    # return empty array if there are no results\n    if not raw_search_results:\n        return []\n\n    search_results = raw_search_results.get('channels', [])\n\n    if len(search_results) == 0:\n        return []\n\n    for result in search_results[0].get('items', []):\n        # parse image results\n        if search_type == 'image':\n            result_url = ''\n            if 'url' in result:\n                result_url = result['url']\n            elif 'link' in result:\n                result_url = result['link']\n            else:\n                continue\n\n            # append result\n            results.append(\n                {\n                    'url': result_url,\n                    'title': result['title'],\n                    'content': '',\n                    'img_src': result['image'],\n                    'template': 'images.html',\n                }\n            )\n\n        # parse general results\n        else:\n            publishedDate = None\n            if 'pubDate' in result:\n                publishedDate = parser.parse(result['pubDate'])\n\n            # append result\n            results.append(\n                {\n                    'url': result['link'] or '',\n                    'title': result['title'],\n                    'content': html_to_text(result['description']),\n                    'publishedDate': publishedDate,\n                }\n            )\n\n        # TODO parse video, audio and file results\n\n    return results\n", "path": "searx/engines/yacy.py"}]}