diff --git a/docs/dev/engines/online/loc.rst b/docs/dev/engines/online/loc.rst deleted file mode 100644 index c9311ebc6..000000000 --- a/docs/dev/engines/online/loc.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _loc engine: - -=================== -Library of Congress -=================== - -.. automodule:: searx.engines.loc - :members: diff --git a/searx/engines/loc.py b/searx/engines/loc.py deleted file mode 100644 index 919be7d26..000000000 --- a/searx/engines/loc.py +++ /dev/null @@ -1,97 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -"""Library of Congress: query Photo, Print and Drawing from API endpoint_ -``photos``. - -.. _endpoint: https://www.loc.gov/apis/json-and-yaml/requests/endpoints/ - -.. note:: - - Beside the ``photos`` endpoint_ there are more endpoints available / we are - looking forward for contributions implementing more endpoints. - -""" - -from urllib.parse import urlencode -from searx.network import raise_for_httperror - -about = { - "website": 'https://www.loc.gov/pictures/', - "wikidata_id": 'Q131454', - "official_api_documentation": 'https://www.loc.gov/api', - "use_official_api": True, - "require_api_key": False, - "results": 'JSON', -} - -categories = ['images'] -paging = True - -endpoint = 'photos' -base_url = 'https://www.loc.gov' -search_string = "/{endpoint}/?sp={page}&{query}&fo=json" - - -def request(query, params): - - search_path = search_string.format( - endpoint=endpoint, - query=urlencode({'q': query}), - page=params['pageno'], - ) - params['url'] = base_url + search_path - params['raise_for_httperror'] = False - return params - - -def response(resp): - - results = [] - json_data = resp.json() - - json_results = json_data.get('results') - if not json_results: - # when a search term has none results, loc sends a JSON in a HTTP 404 - # response and the HTTP status code is set in the 'status' element. - if json_data.get('status') == 404: - return results - - raise_for_httperror(resp) - - for result in json_results: - - url = result["item"].get("link") - if not url: - continue - - img_list = result.get('image_url') - if not img_list: - continue - - title = result['title'] - if title.startswith('['): - title = title.strip('[]') - - content_items = [ - result['item'].get('created_published_date'), - result['item'].get('summary', [None])[0], - result['item'].get('notes', [None])[0], - result['item'].get('part_of', [None])[0], - ] - - author = None - if result['item'].get('creators'): - author = result['item']['creators'][0]['title'] - - results.append( - { - 'template': 'images.html', - 'url': url, - 'title': title, - 'content': ' / '.join([i for i in content_items if i]), - 'img_src': img_list[-1], - 'thumbnail_src': img_list[0], - 'author': author, - } - ) - - return results diff --git a/searx/settings.yml b/searx/settings.yml index 1720b195d..f55f21bf8 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1517,12 +1517,6 @@ engines: # https://github.com/searxng/searxng/issues/3610 inactive: true - - name: library of congress - engine: loc - shortcut: loc - categories: images - disabled: true - - name: libretranslate engine: libretranslate # https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#mirrors