From f5be39e245ff4b464a095175303b72b3b3a39b7c Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 26 May 2026 11:53:20 +0200 Subject: [PATCH] [mod] podcastindex: remove engine (#6140) PodcastIndex.org started using a Proof-of-Work JavaScript challenge whose results are sent as `X-Pow-*` request headers. Although it is technically possible to re-implement the PoW challenge in Python, it's likely impossible to maintain because - the actual Proof of Concept logic might change very often - the whole idea of the Proof of Work challenge is to use a "big" amount of resources (about 1s on my PC); so executing the challenge would almost block all other work on the SearXNG instance At first glance, the challenge looks very similar to what Anubis does, because it also uses SHA256 hashes. --- searx/engines/podcastindex.py | 41 ----------------------------------- searx/settings.yml | 4 ---- 2 files changed, 45 deletions(-) delete mode 100644 searx/engines/podcastindex.py diff --git a/searx/engines/podcastindex.py b/searx/engines/podcastindex.py deleted file mode 100644 index e9a927838..000000000 --- a/searx/engines/podcastindex.py +++ /dev/null @@ -1,41 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -"""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.fromtimestamp(result['newestItemPubdate']), - 'metadata': f"{result['author']}, {result['episodeCount']} episodes", - } - ) - - return results diff --git a/searx/settings.yml b/searx/settings.yml index ea93b919a..7a98b0594 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1697,10 +1697,6 @@ engines: # image proxy of https://pixiv.perennialte.ch # - https://pximg.perennialte.ch - - name: podcastindex - engine: podcastindex - shortcut: podcast - # Required dependency: psychopg2 # - name: postgresql # engine: postgresql