Don't emit stack traces when search results can't be parsed.
This commit is contained in:
parent
f0c13af5df
commit
2437897ee1
1 changed files with 12 additions and 3 deletions
|
@ -2,16 +2,25 @@
|
||||||
"Search Central and Clojars for published artifacts."
|
"Search Central and Clojars for published artifacts."
|
||||||
(:require [clojure.string :as string]
|
(:require [clojure.string :as string]
|
||||||
[clojure.xml :as xml]
|
[clojure.xml :as xml]
|
||||||
[leiningen.core.project :as project])
|
[leiningen.core.project :as project]
|
||||||
|
[leiningen.core.main :as main])
|
||||||
(:import (java.net URLEncoder)))
|
(:import (java.net URLEncoder)))
|
||||||
|
|
||||||
(defn- decruft-central-xml [content]
|
(defn- decruft-central-xml [content]
|
||||||
(zipmap (map #(get-in % [:attrs :name]) content)
|
(zipmap (map #(get-in % [:attrs :name]) content)
|
||||||
(map #(get-in % [:content 0]) 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]
|
(defn search-central [query]
|
||||||
(let [url (str "https://search.maven.org/solrsearch/select?wt=xml&q=" 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))
|
(let [result (decruft-central-xml (:content doc))
|
||||||
dep (if (= (result "a") (result "g"))
|
dep (if (= (result "a") (result "g"))
|
||||||
(result "a")
|
(result "a")
|
||||||
|
@ -20,7 +29,7 @@
|
||||||
|
|
||||||
(defn search-clojars [query]
|
(defn search-clojars [query]
|
||||||
(let [url (str "https://clojars.org/search?format=xml&q=" 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))
|
(let [dep (if (= (result :jar_name) (result :group_name))
|
||||||
(result :jar_name)
|
(result :jar_name)
|
||||||
(str (result :group_name) "/" (result :jar_name)))]
|
(str (result :group_name) "/" (result :jar_name)))]
|
||||||
|
|
Loading…
Reference in a new issue