scala-news-reader

rss/atom news reader in scala

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

SitemapContent.scala

(946B)


      1 package com.joereader.snippet
      2 
      3 import org.joda.time._
      4 
      5 import net.liftweb._
      6 import util._, Helpers._
      7 import http._
      8 import rest._
      9 
     10 import com.joereader.config._
     11 
     12 object Sitemap extends RestHelper {
     13   serve {
     14     case Req("sitemap" :: Nil, _, GetRequest) =>
     15       XmlResponse(
     16         S.render(<lift:embed what="sitemap" />,
     17           S.request.get.request).head)
     18   }
     19 }
     20 
     21 class SitemapContent {
     22 
     23   case class Post(url: String, date: DateTime)
     24 
     25   lazy val entries = Site.siteMap.locForGroup("sitemap").
     26     map(_.calcDefaultHref).map(path => Post(path, new DateTime))
     27 
     28   val siteLastUpdated = new DateTime
     29 
     30   def base: CssSel =
     31     "loc *" #> "http://%s/".format(S.hostName) &
     32       "lastmod *" #> siteLastUpdated.toString("yyyy-MM-dd'T'HH:mm:ss.SSSZZ")
     33 
     34   def list: CssSel =
     35     "url *" #> entries.map(post =>
     36       "loc *" #> "http://%s%s".format(S.hostName, post.url) &
     37         "lastmod *" #> post.date.toString("yyyy-MM-dd'T'HH:mm:ss.SSSZZ"))
     38 
     39 }