aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/buscar-ddgs.sh
diff options
context:
space:
mode:
authorelvis <elvis@claros.ar>2026-09-26 20:20:19 -0300
committerelvis <elvis@claros.ar>2026-09-26 20:20:19 -0300
commit8518a63f55153e7f45fd49ad6caff5555f4e374f (patch)
tree636684eea3fa6f35d78282ab95eb687ef49154af /scripts/buscar-ddgs.sh
parent69de76dc9cbedc6092d1e5ce84094a8030de1470 (diff)
downloadasist-p-8518a63f55153e7f45fd49ad6caff5555f4e374f.tar.gz
asist-p-8518a63f55153e7f45fd49ad6caff5555f4e374f.zip
Translate code, comments, logs and terminal UI to English; add English README; rename scriptsHEADmain
Diffstat (limited to 'scripts/buscar-ddgs.sh')
-rwxr-xr-xscripts/buscar-ddgs.sh54
1 files changed, 0 insertions, 54 deletions
diff --git a/scripts/buscar-ddgs.sh b/scripts/buscar-ddgs.sh
deleted file mode 100755
index a366123..0000000
--- a/scripts/buscar-ddgs.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env bash
-# Busca con ddgs y escribe los resultados en JSON por la salida estándar.
-#
-# scripts/buscar-ddgs.sh "<consulta>" [nº de resultados]
-#
-# ddgs consulta varios buscadores (DuckDuckGo, Brave, Mojeek, Startpage…) sin
-# necesitar ninguna clave. Este guion existe para que la configuración del
-# asistente no tenga que saber nada de uv ni de entornos de Python: aquí se
-# busca un ddgs utilizable y se normaliza la salida.
-#
-# Ojo con dos cosas que parecen equivalentes y no lo son:
-# · `curl` contra html.duckduckgo.com devuelve HTTP 202 con una página
-# anti-bot, sin resultados. Medido, no supuesto.
-# · La API sin clave api.duckduckgo.com (Instant Answer) devuelve vacío para
-# casi todo lo que no sea una entidad de enciclopedia.
-# La librería ddgs sí funciona porque rota buscadores y cabeceras.
-set -euo pipefail
-
-CONSULTA="${1:?uso: buscar-ddgs.sh \"<consulta>\" [nº]}"
-MAXIMO="${2:-5}"
-
-PROGRAMA=$(cat <<'PY'
-import json, sys
-from ddgs import DDGS
-consulta, maximo = sys.argv[1], int(sys.argv[2])
-try:
- filas = DDGS().text(consulta, max_results=maximo)
-except Exception as e: # noqa: BLE001
- print(json.dumps({"error": f"{type(e).__name__}: {e}"}), file=sys.stderr)
- raise SystemExit(1)
-print(json.dumps(filas, ensure_ascii=False))
-PY
-)
-
-# 1) El entorno de `uv tool install ddgs`: es el camino rápido, porque no hay
-# que resolver el paquete en cada búsqueda.
-TOOL_PY="$HOME/.local/share/uv/tools/ddgs/bin/python"
-if [ -x "$TOOL_PY" ]; then
- exec "$TOOL_PY" -c "$PROGRAMA" "$CONSULTA" "$MAXIMO"
-fi
-
-# 2) Un Python del sistema que ya tenga ddgs instalado.
-if python3 -c "import ddgs" >/dev/null 2>&1; then
- exec python3 -c "$PROGRAMA" "$CONSULTA" "$MAXIMO"
-fi
-
-# 3) uvx, que lo descarga al vuelo. Funciona sin instalar nada, pero añade
-# varios segundos a cada búsqueda: mejor `uv tool install ddgs`.
-if command -v uvx >/dev/null 2>&1; then
- exec uvx --quiet --from ddgs python -c "$PROGRAMA" "$CONSULTA" "$MAXIMO"
-fi
-
-echo '{"error":"no hay ddgs disponible. Instálalo con: uv tool install ddgs"}' >&2
-exit 1