28 lines
817 B
Haskell
28 lines
817 B
Haskell
{-# LANGUAGE DuplicateRecordFields #-}
|
|
module FeedMonad where
|
|
|
|
import Data.Tree (Tree(..), Forest)
|
|
import Data.Text (Text)
|
|
import Data.ByteString (ByteString)
|
|
import Data.Entry (URL)
|
|
import Middleware (Middleware)
|
|
import Numeric.Natural (Natural)
|
|
|
|
newtype Minutes = Minutes Natural
|
|
|
|
data FeedMonad = FeedMonad
|
|
{ feeds :: Forest URL
|
|
-- ^ The forest of urls for the feeds. It's a forest because of the categories
|
|
, filters :: Middleware
|
|
-- ^ The middleware. Modifies the scoring, tags and content
|
|
, refreshTime :: Minutes
|
|
-- ^ How often to refresh the feeds
|
|
, secretToken :: Text
|
|
-- ^ Used for authenticating the UI. This is a single user app
|
|
-- served over http, so we can get around with hardcoded
|
|
-- authentication token
|
|
}
|
|
|
|
defaultMain :: FeedMonad -> IO ()
|
|
defaultMain _ = pure ()
|