Clojure演習 ライブラリを書いてみた

ネタ

ニコニコ動画APIを叩くだけのライブラリを書くことにした。
ニコニコ動画APIとは (ニコニコドウガエーピーアイとは) [単語記事] - ニコニコ大百科
けっこういろいろあるので、とりあえずgetthumbinfoだけでも書いてみよう。

パーサライブラリ

jQueryセレクタっぽく書けるのでenliveが一番便利そう。
cgrand/enlive · GitHub
untitled: ClojureでWebスクレイピングするならEnliveが便利 を参考に・・・

(-> (reader url) 
    html-resource 
    (select [:img]))
(select (html-resource (reader url)) [:img])

この2つのコードは等価らしい。わかりにくい。

コード


gist6c193b6588dfbbf979e2

未完成だけど、とりあえずGistに貼っておく。
get-dataをmemoizeでラップしてるのでアクセスは最小限に抑えられる(はず)

出力

Instareplの出力をそれっぽく整形。

libnico=> (get-contents "sm2959233")
({:video_id sm2959233} {:title ニコニコ動画流星群} {:description ニコニコ動画で人気...

1つのmapにまとまってないので後で要修正。