Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,5 @@
|
|||
(require
|
||||
'[clojure.xml :as xml]
|
||||
'[clojure.set :as set]
|
||||
'[clojure.string :as string])
|
||||
(import '[java.net URLEncoder])
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
(defn titles-cont [url]
|
||||
(let [docseq (-> url xml/parse xml-seq)]
|
||||
((juxt #(filter string? %), #(-> (filter map? %) first :cmcontinue))
|
||||
(for [{:keys [tag attrs content]} docseq :when (#{:cm :query-continue} tag)]
|
||||
(if (= tag :cm)
|
||||
(attrs :title)
|
||||
(-> content first :attrs))))))
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
(defn urlencode [s] (URLEncoder/encode s "UTF-8"))
|
||||
(defn param [p v] (str p (urlencode v)))
|
||||
|
||||
(defn get-titles
|
||||
([category]
|
||||
(let [urlbase "http://www.rosettacode.org/w/api.php"
|
||||
params ["action=query"
|
||||
"list=categorymembers"
|
||||
"format=xml"
|
||||
"cmlimit=200"
|
||||
(param "cmtitle=Category:" category)]
|
||||
url (str urlbase "?" (string/join "&" params)]
|
||||
(get-titles url nil)))
|
||||
([url continue-at]
|
||||
(let [continue-param (if continue-at (param "&cmcontinue=" continue-at))
|
||||
[titles continue] (titles-cont (str url continue-param))]
|
||||
(if continue
|
||||
(lazy-cat titles (get-titles url continue))
|
||||
titles))))
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
(defn unimplemented [lang-name]
|
||||
(let [title-set #(future (apply sorted-set (get-titles %)))
|
||||
all-titles (title-set "Programming_Tasks")
|
||||
lang-titles (title-set lang-name)]
|
||||
(seq (set/difference @all-titles @lang-titles))))
|
||||
|
||||
(let [titles (unimplemented "Clojure")]
|
||||
(doseq [title titles] (println title))
|
||||
(println "count: " (count titles)))
|
||||
(shutdown-agents)
|
||||
Loading…
Add table
Add a link
Reference in a new issue