From b5b81c980653a16fbb86cc43fdba4e61546b8fcc Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sat, 30 Sep 2023 20:25:45 +0200 Subject: [PATCH] [feat] engine: implementation of fyyd --- searx/engines/fyyd.py | 50 +++++++++++++++++++++++++++++++++++++++++++ searx/settings.yml | 6 ++++++ 2 files changed, 56 insertions(+) create mode 100644 searx/engines/fyyd.py diff --git a/searx/engines/fyyd.py b/searx/engines/fyyd.py new file mode 100644 index 000000000..10ba91f7f --- /dev/null +++ b/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 diff --git a/searx/settings.yml b/searx/settings.yml index e5da49035..46c7ec98a 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -732,6 +732,12 @@ engines: shortcut: frk disabled: true + - name: fyyd + engine: fyyd + shortcut: fy + timeout: 8.0 + disabled: true + - name: genius engine: genius shortcut: gen