-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | RSS-to-maildir tool -- -- RSS-to-maildir tool @package imm @version 0.3.0.0 module Imm.Types -- | Errors that can be returned by an Imm process data ImmError OtherError :: String -> ImmError HTTPError :: String -> ImmError UnicodeError :: UnicodeException -> ImmError ParseUriError :: String -> ImmError ParseTimeError :: String -> ImmError ParseItemDateError :: Item -> ImmError ParseFeedError :: String -> ImmError CE :: ConnError -> ImmError IOE :: IOError -> ImmError data CliOptions CliOptions :: Bool -> Bool -> Bool -> Maybe String -> CliOptions mCheck :: CliOptions -> Bool mList :: 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 -> [FeedGroup] -> ((Item, Feed) -> String) -> ((Item, Feed) -> Text) -> ((Item, Feed) -> Text) -> Settings mStateDirectory :: Settings -> PortableFilePath mFeedGroups :: Settings -> [FeedGroup] mFromBuilder :: Settings -> (Item, Feed) -> String mSubjectBuilder :: Settings -> (Item, Feed) -> Text -- | sic! mBodyBuilder :: Settings -> (Item, Feed) -> Text type FeedGroup = (FeedSettings, [String]) data FeedSettings FeedSettings :: PortableFilePath -> FeedSettings mMaildir :: FeedSettings -> PortableFilePath 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 -- | Data directory RefDirs :: FilePath -> FilePath -> FilePath -> FilePath -> RefDirs -- | Home directory mHome :: RefDirs -> FilePath -- | Temporary files directory mTemporary :: RefDirs -> FilePath -- | Configuration directory mConfiguration :: RefDirs -> FilePath 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 module Imm.Util -- | Shortcut to liftIO io :: MonadIO m => IO a -> m a -- | Monad-agnostic version of Control.Exception.try try :: (MonadIO m, MonadError ImmError m) => IO a -> m a -- | Print logs with arbitrary importance. logNormal, logVerbose :: MonadIO m => String -> m () -- | Evaluate given function while replacing directory variables -- appropriately for the current system resolve :: MonadIO m => (RefDirs -> a) -> m a decodeUtf8 :: MonadError ImmError m => ByteString -> m Text parseDate :: String -> Maybe UTCTime parseFeedString :: MonadError ImmError m => String -> m Feed parseURI :: MonadError ImmError m => String -> m URI parseTime :: MonadError ImmError m => String -> m UTCTime request :: Request ByteString -> BrowserAction (HandleStream ByteString) (URI, Response ByteString) module Imm.Feed getStateFile :: URI -> FilePath toFileName :: Char -> String getLastCheck :: (MonadReader Settings m, MonadIO m) => URI -> m UTCTime storeLastCheck :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => URI -> UTCTime -> m () getItemLinkNM :: Item -> String getItemContent :: Item -> Text getItemDate :: MonadError ImmError m => Item -> m UTCTime extractHtml :: EntryContent -> String paragraphy :: String -> String module Imm.Config -- | Default configuration. defaultSettings :: Settings contentBuilder :: Item -> Text module Imm.Mail bare :: 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 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.Main printFeedGroupStatus :: (MonadReader Settings m, MonadIO m) => FeedGroup -> m () printFeedStatus :: (MonadReader Settings m, MonadIO m) => String -> m () checkFeedGroup :: (MonadReader Settings m, MonadIO m) => FeedGroup -> m () -- | Internal entry point for imm, after boot process main :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => m () checkStateDirectory :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => m () processFeedGroup :: (MonadIO m, MonadReader Settings m, MonadError ImmError m) => FeedGroup -> m () processFeed :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => FeedSettings -> ImmFeed -> m () processItem :: (MonadReader Settings m, MonadIO m, MonadError ImmError m) => FeedSettings -> (Item, Feed) -> m () downloadRaw :: (MonadIO m, MonadError ImmError m) => URI -> m ByteString downloadFeed :: (MonadIO m, MonadError ImmError m) => URI -> m ImmFeed module Imm.Boot -- | Available commandline options cliOptions :: CliOptions getOptions :: IO CliOptions printDyrePaths :: IO () dyreParameters :: Params (Either String (Settings, CliOptions)) showError :: Either String a -> String -> Either String a -- | Main function to call. imm :: Settings -> IO () realMain :: Either String (Settings, CliOptions) -> IO ()