imm-1.0.1.0: Execute arbitrary actions for each unread element of RSS/Atom feeds

Safe HaskellNone
LanguageHaskell98

Imm.Boot

Synopsis

Documentation

imm Source #

Arguments

:: (a -> CoHttpClientF IO a, a)

HTTP client interpreter (cf Imm.HTTP)

-> (b -> CoDatabaseF' IO b, b)

Database interpreter (cf Imm.Database)

-> (c -> CoLoggerF IO c, c)

Logger interpreter (cf Imm.Logger)

-> (d -> CoHooksF IO d, d)

Hooks interpreter (cf Imm.Hooks)

-> IO () 

Main function, meant to be used in your personal configuration file, by default located at $XDG_CONFIG_HOME/imm/imm.hs.

For more information about the dynamic reconfiguration system, please consult Config.Dyre.

Here is an example:

import           Imm.Boot
import           Imm.Database.JsonFile
import           Imm.Feed
import           Imm.Hooks.SendMail
import           Imm.HTTP.Simple
import           Imm.Logger.Simple

main :: IO ()
main = do
  logger <- defaultLogger
  manager <- defaultManager
  database <- defaultDatabase

  imm (mkCoHttpClient, manager) (mkCoDatabase, database) (mkCoLogger, logger) (mkCoHooks, sendmail)

sendmail :: SendMailSettings
sendmail = SendMailSettings smtpServer formatMail

formatMail :: FormatMail
formatMail = FormatMail
  (\a b -> (defaultFormatFrom a b) { addressEmail = "user@host" } )
  defaultFormatSubject
  defaultFormatBody
  (\_ _ -> [Address Nothing "user@host"])

smtpServer :: Feed -> FeedElement -> SMTPServer
smtpServer _ _ = SMTPServer
  (Just $ Authentication PLAIN "user" "password")
  (StartTls "smtp.host" defaultSettingsSMTPSTARTTLS)