RSS フィードを拾う
使うのは ROME というライブラリ。
http://mvnrepository.com/artifact/rome/rome/1.0
そのまま sbt に
"rome" % "rome" % "1.0"
としておけば利用可能。
コード的に難しいものはなく、
import com.sun.syndication.io.SyndFeedInput
import com.sun.syndication.feed.synd.SyndEntry
class FeedReader(rssBody:String) {
val input = new SyndFeedInput
val feed = input.build(new StringReader(rssBody))
import scala.collection.JavaConversions._
lazy val title = feed.getTitle
lazy val url = feed.getLink
lazy val uri = feed.getUri
lazy val entries = feed.getEntries.map(o => o.asInstanceOf[SyndEntry])
}等としておき、自分のサイトのRSSをざっくり拾ってみたのが
val feed = new FeedReader(body)
logger.info("Title : " + feed.title)
logger.info("URL : " + feed.url)
logger.info("URI : " + feed.uri)
feed.entries.foreach(entry => {
logger.logger.info("Entry : " + entry.getTitle)
})出力結果
[info] m.a.RssLoader$ - Title : 謎言語使いの徒然 [info] m.a.RssLoader$ - URL : http://white-azalea.hatenablog.jp/ [info] m.a.RssLoader$ - URI : null [info] m.a.RssLoader$ - Entry : WS API でWeb上のデータを引っ張る [info] m.a.RssLoader$ - Entry : フォームエラーをまとめて表示したい [info] m.a.RssLoader$ - Entry : JQuery のJSON系リクエストが想定外でハマった [info] m.a.RssLoader$ - Entry : Form をテンプレート上でバインドする [info] m.a.RssLoader$ - Entry : Playプロジェクトを作成する [info] m.a.RssLoader$ - Entry : Form を使う [info] m.a.RssLoader$ - Entry : Playframework の Form メッセージ多言語化