clojure で httpで通信したり、RSSを扱う術
こんにちは。最近、1日0円で過ごせることに気づきました、きたけーです。
今日は、clojureネタでふたつばかし。
httpで通信する
dakrone/clj-http
軽くぐぐってみたかんじ dakrone/clj-http · GitHub がよさそうだった。 READMEみたかぎりだと、必要そうなことはオプションで指定できるし、インターフェイスもきれいだった。
パッケージの追加とか実行の仕方は clojure で ツイートする術 - きたけーTechブログ で書いたので省略します。
POSTメソッドでリクエスト
例えば、ikachanに通知投げる場合はこんなんじ
(ns http-client.core) (ns http-client.core (:require [clj-http.client :as client])) (defn -main [& args] (client/post "http://irc.example.jp:4979/notice" {:form-params {:channel "#test" :message "test"}}))
RSSを扱う
scsibug/feedparser-clj
scsibug/feedparser-clj · GitHub がよさそうだった。 ROMEというJavaのRSSライブラリを中で使っているらしい。実装のぞいたけど、ファイル一枚でシンプルだった。
件数とエントリの先頭5件のタイトルを表示
(ns feed_sample.core (:require [feedparser-clj.core :as feedparser])) (defn -main [& args] (def feed (feedparser/parse-feed "http://qiita.com/tags/clojure/feed")) (println (count (:entries feed))) (println (clojure.string/join "\n" (map :title (take 5 (:entries feed))))) )
所感
clojure、同じ立ち位置のライブラリが乱立していないかんじがするし、ライブラリの質も(ここではインターフェイスという意ですが)よいかんじがする。どの言語にもありそうなライブラリは、大体 ○○-clj
かclj-○○
でみつかる。
進捗: プログラミングclojure、マクロの章まで読み終えた。今週中には読み終えそう。