scala-news-reader

rss/atom news reader in scala

git clone https://9o.is/git/scala-news-reader.git

EntriesEngine.scala

(608B)


      1 package com.joereader.actor
      2 
      3 import com.joereader._
      4 import model._
      5 import lib.rss._
      6 
      7 import net.liftweb.common._
      8 
      9 import dispatch._
     10 import Defaults._
     11 
     12 /**
     13  * Maintains blog entries in memory.
     14  * Fetch entries from here.
     15  */
     16 object EntriesEngine extends Logger {
     17 
     18   def entries(blog: Blog): List[FeedEntry] = 
     19     blog.urlRss.get.head.entries.present
     20   
     21   def find(blog: Box[Blog], guid: String): Box[FeedEntry] =
     22     blog.map(_.urlRss.get.head.entry(guid)() match {
     23       case Left(msg) =>
     24         warn(msg)
     25         Empty
     26       case Right(entry) =>
     27         entry
     28     }) openOr (Empty ?~ "Blog is missing")
     29 
     30 }