Browse Source

[feat] engine: implementation of fyyd

Bnyro 1 year ago
parent
commit
b5b81c9806
2 changed files with 56 additions and 0 deletions
  1. 50 0
      searx/engines/fyyd.py
  2. 6 0
      searx/settings.yml

+ 50 - 0
searx/engines/fyyd.py

@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# lint: pylint
+"""Fyyd (podcasts)
+"""
+
+from datetime import datetime
+from urllib.parse import urlencode
+
+about = {
+    'website': 'https://fyyd.de',
+    'official_api_documentation': 'https://github.com/eazyliving/fyyd-api',
+    'use_official_api': True,
+    'require_api_key': False,
+    'results': 'JSON',
+}
+categories = []
+paging = True
+
+base_url = "https://api.fyyd.de"
+page_size = 10
+
+
+def request(query, params):
+    args = {
+        'term': query,
+        'count': page_size,
+        'page': params['pageno'] - 1,
+    }
+    params['url'] = f"{base_url}/0.2/search/podcast?{urlencode(args)}"
+    return params
+
+
+def response(resp):
+    results = []
+
+    json_results = resp.json()['data']
+
+    for result in json_results:
+        results.append(
+            {
+                'url': result['htmlURL'],
+                'title': result['title'],
+                'content': result['description'],
+                'thumbnail': result['smallImageURL'],
+                'publishedDate': datetime.strptime(result['status_since'], '%Y-%m-%d %H:%M:%S'),
+                'metadata': f"Rank: {result['rank']} || {result['episode_count']} episodes",
+            }
+        )
+
+    return results

+ 6 - 0
searx/settings.yml

@@ -732,6 +732,12 @@ engines:
     shortcut: frk
     shortcut: frk
     disabled: true
     disabled: true
 
 
+  - name: fyyd
+    engine: fyyd
+    shortcut: fy
+    timeout: 8.0
+    disabled: true
+
   - name: genius
   - name: genius
     engine: genius
     engine: genius
     shortcut: gen
     shortcut: gen