{-# LANGUAGE DeriveDataTypeable #-} module Imm.Types where -- {{{ Imports 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], -- ^ Feeds list mMailDirectory :: PortableFilePath, mError :: Maybe String -- ^ Error } 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] -- | Set of reference directories, typically used to build FilePath-s data RefDirs = RefDirs { mHome :: FilePath, -- ^ Home directory mTemporary :: FilePath, -- ^ Temporary files directory mConfiguration :: FilePath, -- ^ Configuration directory mData :: FilePath -- ^ Data directory } type PortableFilePath = RefDirs -> FilePath