29 lines
822 B
Bash
Executable File
29 lines
822 B
Bash
Executable File
#!/bin/bash
|
|
# SearXNG search wrapper
|
|
# Usage: searxng-search.sh "query" [num_results]
|
|
|
|
SEARXNG_URL="http://docker.kangaroo-eel.ts.net:8010"
|
|
QUERY="${1:-}"
|
|
LIMIT="${2:-10}"
|
|
|
|
if [ -z "$QUERY" ]; then
|
|
echo "Usage: searxng-search.sh \"query\" [num_results]"
|
|
exit 1
|
|
fi
|
|
|
|
ENCODED=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$QUERY'))")
|
|
|
|
curl -s "${SEARXNG_URL}/search?q=${ENCODED}&format=json&pageno=1" | python3 -c "
|
|
import json, sys
|
|
data = json.load(sys.stdin)
|
|
results = data.get('results', [])[:${LIMIT}]
|
|
for i, r in enumerate(results, 1):
|
|
print(f\"{i}. {r.get('title','')}\")
|
|
print(f\" {r.get('url','')}\")
|
|
snippet = r.get('content','').strip().replace('\n',' ')
|
|
if snippet:
|
|
print(f\" {snippet[:200]}\")
|
|
print()
|
|
print(f\"Total results: {len(data.get('results', []))}\")
|
|
"
|