#!/bin/bash
# Bright Data Google Search (parsed_light JSON)

QUERY="$1"
CURSOR="${2:-0}"

if [ -z "$QUERY" ]; then
    echo "Usage: $0 \"query\" [cursor]" >&2
    exit 1
fi

if [ -z "${BRIGHTDATA_API_KEY:-}" ]; then
    echo "Error: BRIGHTDATA_API_KEY is not set." >&2
    echo "Get a key from https://brightdata.com/cp" >&2
    exit 1
fi

if [ -z "${BRIGHTDATA_UNLOCKER_ZONE:-}" ]; then
    echo "Error: BRIGHTDATA_UNLOCKER_ZONE is not set." >&2
    echo "Create a zone at brightdata.com/cp" >&2
    exit 1
fi

# Build Google search URL with pagination
START=$((CURSOR * 10))
ENCODED_QUERY=$(printf '%s' "$QUERY" | jq -sRr @uri)
SEARCH_URL="https://www.google.com/search?q=${ENCODED_QUERY}&start=${START}"

# Call Bright Data API
PAYLOAD=$(jq -n \
    --arg url "$SEARCH_URL" \
    --arg zone "$BRIGHTDATA_UNLOCKER_ZONE" \
    '{
        url: $url,
        zone: $zone,
        format: "raw",
        data_format: "parsed_light"
    }')

RESPONSE=$(curl -s -X POST 'https://api.brightdata.com/request' \
    -H "Authorization: Bearer $BRIGHTDATA_API_KEY" \
    -H 'Content-Type: application/json' \
    -d "$PAYLOAD")

# Extract and clean organic results
echo "$RESPONSE" | jq '{
    organic: [.organic[]? | select(.link and .title) | {
        link: .link,
        title: .title,
        description: (.description // "")
    }]
}'
