# SPDX-License-Identifier: AGPL-3.0-or-later # lint: pylint """Podcast Index """ from urllib.parse import quote_plus from datetime import datetime about = { 'website': 'https://podcastindex.org', 'official_api_documentation': None, # requires an account 'use_official_api': False, 'require_api_key': False, 'results': 'JSON', } categories = [] base_url = "https://podcastindex.org" def request(query, params): params['url'] = f"{base_url}/api/search/byterm?q={quote_plus(query)}" return params def response(resp): results = [] json = resp.json() for result in json['feeds']: results.append( { 'url': result['link'], 'title': result['title'], 'content': result['description'], 'thumbnail': result['image'], 'publishedDate': datetime.utcfromtimestamp(result['newestItemPubdate']), 'metadata': f"{result['author']}, {result['episodeCount']} episodes", } ) return results