module Imm.Types where
import Network.URI
import Data.Time
import Data.Time.RFC2822
import System.Console.CmdArgs
import Text.Feed.Types
data CliOptions = CliOptions {
mParameter :: Maybe String
} deriving (Data, Typeable, Show, Eq)
data Parameters = Parameters {
mCacheDirectory :: Maybe String,
mFeedURIs :: [String],
mMailDirectory :: PortableFilePath,
mError :: Maybe String
}
data ImmFeed = ImmFeed {
mURI :: URI,
mFeed :: Feed
}
data Mail = Mail {
mReturnPath :: String,
mDate :: Maybe ZonedTime,
mFrom :: String,
mSubject :: String,
mMIME :: String,
mCharset :: String,
mContentDisposition :: String,
mContent :: String
}
instance Show Mail where
show mail = unlines [
"Return-Path: " ++ mReturnPath mail,
maybe "" (("Date: " ++) . showRFC2822) . mDate $ mail,
"From: " ++ mFrom mail,
"Subject: " ++ mSubject mail,
"Content-Type: " ++ mMIME mail ++ "; charset=" ++ mCharset mail,
"Content-Disposition: " ++ mContentDisposition mail,
"",
mContent mail]
data RefDirs = RefDirs {
mHome :: FilePath,
mTemporary :: FilePath,
mConfiguration :: FilePath,
mData :: FilePath
}
type PortableFilePath = RefDirs -> FilePath