-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Retrieve RSS/Atom feeds and write one mail per new item in a maildir.
--
-- Retrieve RSS/Atom feeds and write one mail per new item in a maildir.
@package imm
@version 0.4.0.0
module Imm.OPML
read :: String -> Maybe [(String, [String])]
module Imm.Types
-- | Errors that can be returned by an Imm process
data ImmError
OtherError :: String -> ImmError
HTTPError :: HttpException -> ImmError
TLSError :: HandshakeFailed -> ImmError
UnicodeError :: UnicodeException -> ImmError
ParseUriError :: String -> ImmError
ParseTimeError :: String -> ImmError
ParseItemDateError :: Item -> ImmError
ParseFeedError :: String -> ImmError
IOE :: IOError -> ImmError
TimeOut :: ImmError
data CliOptions
CliOptions :: Maybe String -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Maybe String -> CliOptions
mFeedURI :: CliOptions -> Maybe String
mImportOPML :: CliOptions -> Bool
mList :: CliOptions -> Bool
mMarkAsRead :: CliOptions -> Bool
mMarkAsUnread :: CliOptions -> Bool
mUpdate :: CliOptions -> Bool
-- | Do not recompile configuration even if it has changed
mDenyReconf :: CliOptions -> Bool
mMasterBinary :: CliOptions -> Maybe String
-- | Set of settings for imm
data Settings
Settings :: PortableFilePath -> PortableFilePath -> ((Item, Feed) -> String) -> ((Item, Feed) -> Text) -> ((Item, Feed) -> Text) -> Settings
mStateDirectory :: Settings -> PortableFilePath
mMaildir :: Settings -> PortableFilePath
mFromBuilder :: Settings -> (Item, Feed) -> String
mSubjectBuilder :: Settings -> (Item, Feed) -> Text
-- | sic!
mBodyBuilder :: Settings -> (Item, Feed) -> Text
type CustomSettings = Settings -> Settings
type FeedList = [(CustomSettings, String)]
type ImmFeed = (URI, Feed)
data Mail
Mail :: String -> Maybe ZonedTime -> String -> Text -> String -> String -> String -> Text -> Mail
mReturnPath :: Mail -> String
mDate :: Mail -> Maybe ZonedTime
mFrom :: Mail -> String
mSubject :: Mail -> Text
mMIME :: Mail -> String
mCharset :: Mail -> String
mContentDisposition :: Mail -> String
mBody :: Mail -> Text
-- | Set of reference directories, typically used to build FilePath-s
data RefDirs
RefDirs :: FilePath -> FilePath -> FilePath -> FilePath -> RefDirs
-- | Home directory
mHome :: RefDirs -> FilePath
-- | Temporary files directory
mTemporary :: RefDirs -> FilePath
-- | Configuration directory
mConfiguration :: RefDirs -> FilePath
-- | Data directory
mData :: RefDirs -> FilePath
type PortableFilePath = RefDirs -> FilePath
instance Typeable CliOptions
instance Data CliOptions
instance Show CliOptions
instance Eq CliOptions
instance Error ImmError
instance Show ImmError
-- | Various utilities
module Imm.Util
-- | Shortcut to liftIO
io :: MonadIO m => IO a -> m a
-- | Monad-agnostic version of try
try :: (MonadIO m, MonadError ImmError m) => IO a -> m a
-- | Monad-agnostic version of timeout
timeout :: (MonadIO m, MonadError ImmError m) => Int -> IO a -> m a
-- | Print logs with arbitrary importance
logError, logVerbose, logNormal :: MonadIO m => String -> m ()
-- | Evaluate given function while replacing directory variables
-- appropriately for the current system
resolve :: MonadIO m => (RefDirs -> a) -> m a
-- | Monad-agnostic version of Data.Text.Encoding.decodeUtf8
decodeUtf8 :: MonadError ImmError m => ByteString -> m Text
decode :: (MonadIO m, MonadError ImmError m) => ByteString -> m Text
-- | Monad-agnostic version of Network.URI.parseURI
parseURI :: MonadError ImmError m => String -> m URI
-- | Monad-agnostic version of Data.Time.Format.parseTime
parseTime :: MonadError ImmError m => String -> m UTCTime
parseDate :: String -> Maybe UTCTime
-- | HTTP client related functions
module Imm.HTTP
getRaw :: (MonadIO m, MonadError ImmError m) => URI -> m ByteString
-- | Monad-agnostic version of 'withManager
withManager' :: (MonadIO m, MonadError ImmError m) => (Manager -> ResourceT IO b) -> m b
-- | Monad-agnostic version of parseUrl
parseURL :: (MonadIO m, MonadError ImmError m) => String -> m (Request m')
-- | Build an HTTP request for given URI.
request :: (MonadError ImmError m, MonadIO m) => String -> m (Request a)
-- | Utilities to manipulate mails.
module Imm.Mail
toText :: Mail -> Text
build :: MonadReader Settings m => TimeZone -> (Item, Feed) -> m Mail
buildFrom :: MonadReader Settings m => (Item, Feed) -> m String
buildSubject :: MonadReader Settings m => (Item, Feed) -> m Text
buildBody :: MonadReader Settings m => (Item, Feed) -> m Text
instance Default Mail
-- | Utilities to manipulate maildirs.
module Imm.Maildir
init :: (MonadIO m, MonadError ImmError m) => PortableFilePath -> m ()
add :: (MonadIO m, MonadError ImmError m) => PortableFilePath -> Mail -> m ()
getUniqueName :: MonadIO m => m String
module Imm.Feed
getStateFile :: URI -> FilePath
toFileName :: Char -> String
-- | Monad-agnostic version of parseFeedString
parse :: MonadError ImmError m => String -> m Feed
printStatus :: (MonadReader Settings m, MonadIO m) => String -> m ()
getLastCheck :: (MonadReader Settings m, MonadIO m) => URI -> m UTCTime
storeLastCheck :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => URI -> UTCTime -> m ()
download :: (MonadIO m, MonadError ImmError m) => URI -> m ImmFeed
-- | Create mails for each new item
update :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => ImmFeed -> m ()
updateItem :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => (Item, Feed) -> m ()
markAsRead :: (MonadIO m, MonadError ImmError m, MonadReader Settings m) => URI -> m ()
markAsUnread :: (MonadIO m, MonadError ImmError m, MonadReader Settings m) => URI -> m ()
getItemLinkNM :: Item -> String
getItemContent :: Item -> Text
getDate :: MonadError ImmError m => Item -> m UTCTime
extractHtml :: EntryContent -> String
paragraphy :: String -> String
-- | Default settings
module Imm.Config
addFeeds :: MonadIO m => [(String, [String])] -> m ()
instance Default Settings
-- | Main high level process functions.
module Imm.Main
importOPML :: MonadIO m => m ()
list :: MonadIO m => FeedList -> m ()
markAsRead :: MonadIO m => FeedList -> m ()
markAsUnread :: MonadIO m => FeedList -> m ()
update :: MonadIO m => FeedList -> m ()
checkStateDirectory :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => m ()
-- | Low level functions used at start-up to parse commandline and handle
-- dynamic reconfiguration.
module Imm.Boot
-- | Available commandline options.
cliOptions :: Mode (CmdArgs CliOptions)
-- | Print various paths used for dynamic reconfiguration.
printDyrePaths :: IO ()
-- | Dynamic configuration settings.
dyreParameters :: Params (Either String FeedList)
showError :: Either String a -> String -> Either String a
-- | Main function to call in your configuration file.
imm :: FeedList -> IO ()
-- | Internal dispatcher, decides which function to execute depending on
-- commandline options.
realMain :: Either String FeedList -> IO ()