Don't emit stack traces when search results can't be parsed.

This commit is contained in:
Phil Hagelberg 2017-12-29 14:03:46 -08:00
parent f0c13af5df
commit 2437897ee1

View file

@ -2,16 +2,25 @@
"Search Central and Clojars for published artifacts."
(:require [clojure.string :as string]
[clojure.xml :as xml]
[leiningen.core.project :as project])
[leiningen.core.project :as project]
[leiningen.core.main :as main])
(:import (java.net URLEncoder)))
(defn- decruft-central-xml [content]
(zipmap (map #(get-in % [:attrs :name]) content)
(map #(get-in % [:content 0]) content)))
(defn parse [url]
(try (xml/parse url)
(catch Exception e
(main/warn "Could not retrieve search results from" url "because of"
(class e))
(when main/*debug*
(.printStackTrace e)))))
(defn search-central [query]
(let [url (str "https://search.maven.org/solrsearch/select?wt=xml&q=" query)]
(doseq [doc (get-in (xml/parse url) [:content 1 :content])]
(doseq [doc (get-in (parse url) [:content 1 :content])]
(let [result (decruft-central-xml (:content doc))
dep (if (= (result "a") (result "g"))
(result "a")
@ -20,7 +29,7 @@
(defn search-clojars [query]
(let [url (str "https://clojars.org/search?format=xml&q=" query)]
(doseq [{result :attrs} (:content (xml/parse url))]
(doseq [{result :attrs} (:content (parse url))]
(let [dep (if (= (result :jar_name) (result :group_name))
(result :jar_name)
(str (result :group_name) "/" (result :jar_name)))]