summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBnyro <bnyro@tutanota.com>2026-09-05 19:27:54 +0200
committerBnyro <bnyro@tutanota.com>2026-09-05 22:44:32 +0200
commitc06e9f088952f59ad8003acba73854975b51da4a (patch)
treed3401c3126b9fb14f74cbd112d9231bbc8e40aef
parent4781754dc46114b38a4773e917f5554d839aa03a (diff)
[del] cara engine: remove because it requires signup for searching
-rw-r--r--docs/dev/engines/online/cara.rst8
-rw-r--r--searx/engines/cara.py85
-rw-r--r--searx/settings.yml5
3 files changed, 0 insertions, 98 deletions
diff --git a/docs/dev/engines/online/cara.rst b/docs/dev/engines/online/cara.rst
deleted file mode 100644
index 5e608119a..000000000
--- a/docs/dev/engines/online/cara.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. _cara engine:
-
-===========
-Cara Images
-===========
-
-.. automodule:: searx.engines.cara
- :members:
diff --git a/searx/engines/cara.py b/searx/engines/cara.py
deleted file mode 100644
index 22cce024e..000000000
--- a/searx/engines/cara.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# SPDX-License-Identifier: AGPL-3.0-or-later
-# pylint: disable=invalid-name
-"""Cara_ is a social media and portfolio-sharing platform for artists and art
-enthusiasts.
-
-With the widespread use of generative AI, Cara_ decided to build a place that
-filters out gen AI images so that people searching for authentic creatives and
-images can do so easily.
-
-.. _Cara: https://cara.app/about
-"""
-
-from urllib.parse import urlencode
-
-import typing as t
-
-from searx.result_types import EngineResults
-
-if t.TYPE_CHECKING:
- from searx.extended_types import SXNG_Response
- from searx.search.processors import OnlineParams
-
-
-about = {
- "website": "https://cara.app",
- "official_api_documentation": None,
- "use_official_api": False,
- "require_api_key": False,
- "results": "JSON",
-}
-
-base_url = "https://cara.app"
-images_url = "https://images.cara.app"
-
-categories = ["images"]
-paging = True
-results_per_page = 24
-
-# if using HTTP2, we get blocked immediately
-enable_http2 = False
-
-
-def request(query: str, params: "OnlineParams") -> None:
- args = {
- "q": query,
- "sortBy": "Top",
- "take": results_per_page,
- "skip": (params["pageno"] - 1) * results_per_page,
- }
- params["url"] = f"{base_url}/api/search/portfolio-posts?{urlencode(args)}"
-
-
-def response(resp: "SXNG_Response"):
- res = EngineResults()
- json_data: list[dict[str, t.Any]] = resp.json()
-
- for result in json_data:
- thumbnail, img = None, None
-
- i: dict[str, str]
- for i in result["images"]:
- if thumbnail is None or i["isCoverImg"]:
- thumbnail = i
-
- if img is None or not i["isCoverImg"]:
- img = i
-
- if not thumbnail or not img:
- continue
-
- res.add(
- res.types.LegacyResult(
- {
- "template": "images.html",
- "url": f"{base_url}/post/{result['id']}",
- "thumbnail_src": f"{images_url}/{thumbnail['src']}?height=256",
- "img_src": f"{images_url}/{img['src']}",
- "title": result["title"],
- "content": result["content"],
- "author": result["name"],
- }
- )
- )
-
- return res
diff --git a/searx/settings.yml b/searx/settings.yml
index ad557842a..a97c37c93 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -634,11 +634,6 @@ engines:
shortcut: cos
disabled: true
- - name: cara
- engine: cara
- shortcut: ca
- disabled: true
-
# - name: chatnoir
# engine: chatnoir
# shortcut: cha