Skip to content

Instantly share code, notes, and snippets.

@usametov
Last active July 6, 2023 17:28
Show Gist options
  • Save usametov/2d859289bdaa3c1c7f49f8631bd22d13 to your computer and use it in GitHub Desktop.
Save usametov/2d859289bdaa3c1c7f49f8631bd22d13 to your computer and use it in GitHub Desktop.
babashka search
#!/usr/bin/env bb
(require '[babashka.process :refer [shell process exec]])
(require '[clojure.string :as s])
(require '[cheshire.core :as json])
(import 'java.time.format.DateTimeFormatter
'java.time.LocalDateTime)
(defn search
[q offset]
(->
(shell {:out :string} "python" "search-client.py" q offset)
:out
(json/parse-string true)
:items))
(defn search50
[query search-name]
(doseq [offset (range 1 51 10)]
(spit (str search-name offset ".txt")
(into [] (mapv :link (search query offset))))))
(defn weeks-ago-str
[num-of-weeks-ago]
(let [ date (.minusWeeks (LocalDateTime/now) 1)
formatter (DateTimeFormatter/ofPattern "yyyy-MM-dd")]
(.format date formatter)))
(def result (search "N-acetyl-aspartate (NAA) AND N-methyl-D-aspartate (NMDA) filetype:pdf"))
(map :link result)
import sys
import json
from googleapiclient.discovery import build
# GOOGLE_API_KEY and GOOGLE_CSE_ID
my_api_key = ""
my_cse_id = ""
def google_search(search_term, api_key, cse_id, offset, **kwargs):
service = build("customsearch", "v1", developerKey=api_key)
res = service.cse().list(q=search_term, cx=cse_id, start=offset, **kwargs).execute()
return res
result = google_search(sys.argv[1], my_api_key, my_cse_id, sys.argv[2])
print(json.dumps(result))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment