{-# 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 ()