aboutsummaryrefslogtreecommitdiffstats
path: root/tools/search_google.sh
blob: 5d3e1f0ddea326c22607e1f42449eb19fa6494d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env bash
set -e

# @describe Perform a web search using Google Search API to get up-to-date information or additional context.
# Use this when you need current information or feel a search could provide a better answer.

# @env GOOGLE_API_KEY! The api key
# @env GOOGLE_CSE_ID! The id of google search engine
# @env GOOGLE_MAX_RESULTS=5 The max results to return.
# @option --query! The query to search for.

main() {
    encoded_query="$(jq -nr --arg q "$argc_query" '$q|@uri')"
    url="https://www.googleapis.com/customsearch/v1?key=$GOOGLE_API_KEY&cx=$GOOGLE_CSE_ID&q=$encoded_query"
    curl -fsSL "$url" | \
        jq '[.items[:'"$GOOGLE_MAX_RESULTS"'] | .[] | {title: .title, link: .link, snippet: .snippet}]'
}

eval "$(argc --argc-eval "$0" "$@")"