28 lines
933 B
Haskell
28 lines
933 B
Haskell
module Handler.Feed where
|
|
|
|
import Import
|
|
import Stackage.Database
|
|
|
|
getFeedR :: Handler TypedContent
|
|
getFeedR = do
|
|
(_, snaps) <- getSnapshots 20 0
|
|
let entries = flip map snaps $ \snap -> FeedEntry
|
|
{ feedEntryLink = SnapshotR (snapshotName snap) StackageHomeR
|
|
, feedEntryUpdated = UTCTime (snapshotCreated snap) 0
|
|
, feedEntryTitle = prettyName (snapshotName snap) (snapshotGhc snap)
|
|
, feedEntryContent = ""
|
|
}
|
|
updated <-
|
|
case entries of
|
|
[] -> liftIO getCurrentTime
|
|
x:_ -> return $ feedEntryUpdated x
|
|
newsFeed Feed
|
|
{ feedTitle = "Recent Stackage snapshots"
|
|
, feedLinkSelf = FeedR
|
|
, feedLinkHome = HomeR
|
|
, feedAuthor = "Stackage Project"
|
|
, feedDescription = "Recent Stackage snapshots"
|
|
, feedLanguage = "en"
|
|
, feedUpdated = updated
|
|
, feedEntries = entries
|
|
}
|