-- | Default settings module Imm.Config where -- {{{ Imports import Imm.Feed import Imm.Types import Imm.Util import Control.Monad.Trans import Data.Char import Data.Default import Data.Foldable hiding(concat) import qualified Data.Text.Lazy as T import System.Directory import System.Environment.XDG.BaseDir import Text.Feed.Query -- }}} instance Default Settings where def = Settings { mStateDirectory = getUserConfigDir "imm" >/> "state", mMaildir = getHomeDirectory >/> "feeds", mFromBuilder = \(item, feed) -> maybe (getFeedTitle feed) id $ getItemAuthor item, mSubjectBuilder = \(item, _feed) -> T.pack . maybe "Untitled" id $ getItemTitle item, mBodyBuilder = \(item, _feed) -> T.unlines $ map (flip ($) item) [T.pack . getItemLinkNM, getItemContent]} addFeeds :: MonadIO m => [(String, [String])] -> m () addFeeds feeds = io . forM_ feeds $ \(groupTitle, uris) -> do putStrLn $ "-- Group " ++ groupTitle putStrLn $ map toLower (concat . words $ groupTitle) ++ " = [" forM_ uris (\uri -> putStrLn $ " " ++ show uri ++ ",") putStrLn "]" putStrLn ""