module Yesod.CoreBot.Bliki.Resources.Blog where import Yesod.CoreBot.Bliki.Prelude import Yesod.CoreBot.Bliki.Resources.Base import Yesod.CoreBot.Bliki.Config import Yesod.CoreBot.Bliki.DB import Yesod.CoreBot.Bliki.Store import qualified Data.Text as Text mk_blog :: Data_ master -> IO ( Blog_ master ) mk_blog src_data = return $ Blog src_data -- XXX: needs json representation getBlogIndexR :: Yesod master => GHandler ( Blog_ master ) master RepHtml getBlogIndexR = do blog@(Blog src_data) <- getYesodSub db <- liftIO $ readIORef $ db_ref src_data let updates = take 50 $ update_log db update_summaries = build_summaries updates build_summaries [] = [] build_summaries ( Tweet _ txt : us ) = [whamlet|

#{txt} |] : build_summaries us build_summaries ( BlogAdded _ txt : us ) = [whamlet|

#{take 200 txt} |] : build_summaries us build_summaries ( EntryAdded _ node_path : us ) = let node_R = data_routes (config src_data) $ EntryLatestR [] in [whamlet|

Added #{node_path} |] : build_summaries us build_summaries ( EntryChanged _ node_path : us ) = let node_R = data_routes (config src_data) $ EntryLatestR [] in [whamlet|

Changed #{node_path} |] : build_summaries us build_summaries ( Wibble _ : us ) = build_summaries us defaultLayout $ do [whamlet|

    $forall summary <- update_summaries
  1. ^{summary} |] mkYesodSubDispatch "Blog_ master" [] [parseRoutes| / BlogIndexR GET |]