はてなブックマークのホットエントリーとかをkindleで読めるようにしたい

ということで、kindle 3が届いたので、手始めにはてなブックマークのホットエントリーをkindleで読めるようにしたい! と頑張ってみました。結論からいうと、まだ読めるようになっていません、が、何割かは読めるようになったのでご報告です。
kindleのHome画面。
20100920170310
目次も作った。押すとその記事へ跳ぶ! 普通だ!
20100920170341
エントリ本文。僕の携帯カメラがしょぼいせいでなんだか綺麗に見えないですが綺麗、というか読みやすい。あと夢は大事ですよね! 僕も夢は潰されたくないです!
20100920170955
画像も当然白黒ですが、出来る限り取り込んでみました。
20100920170202

挙動としては

  1. RSSを取りに行く
  2. titleとurlを参照してエントリ本体を取りに行く
  3. 画像も落とす
  4. エントリ本文ぽい感じの部分をHタグとPタグのみになるくらい削ってから全部結合して一個のHTMLにする
  5. HTMLの目次、ncxも一緒につくる
  6. kindlegenを使ってkindleで読める形式(.mobi)に変換する

という感じです。

ソースはgithubに置きました。今ひとつよく理解出来ていないですが、http://github.com/K2Da/sledtr から参照できると思います。sbt + eclipse(ほぼエディタとしてのみ使用)で作ってたので、多分sbtが必要です。eclipseは別にいらないのかな。

バイナリは http://github.com/K2Da/sledtr/downloads にあります。proguardでjarファイルにscala-libraryも突っ込んであるので、jreがあれば動くのではないかなーと思うのですが確信はありません。

一応、


java -jar sledtr_2.8.0-0.1.min.jar c:/work/WorkSpace/config.yaml
という感じで動くのを確認しています。

引数に渡しているyamlはjarと同じページにサンプルを置きました。最低限、ファイルの一番上の


workdir : c:/work/tdwork
kindlegen : c:/Program Files (x86)/kindlegen/kindlegen.exe
の二つは編集しないと動きません。作業用のディレクトリと、.mobiの生成に使うkindlegenのパスを記述します。

ものすごい量の警告(と例外)が出力された後、上手くいってれば作業用ディレクトリの下の、3c5816d77e9f2bb5262f523b3e5ce26aとかって感じのディレクトリの下に、book.mobiというファイルが出来ているはずなので、kindleにコピーしてあげると読める、はずです。ちなみに、作業ディレクトリの下には画像やRSS、HTMLを全部キャッシュするので、手で消さないと永遠に同じ内容のファイルを生成します。

ここ数日、結果確認のためにホットエントリーを読みまくっていたら頭がおかしくなってきたので、普段RSSリーダーで読んでる時はかなり高性能な無意識フィルタリングが働いているなーというのを実感しました。

あ、あとhtmlを取りに行く際、ある程度間隔を空けたり、というのを一切考慮してないので図書館サイトのRSSに対して使ったりすると逮捕されるので注意してください。