marvin-0.0.4: src/Marvin.hs
{-|
Module : $Header$
Description : Marvin the modular bot
Copyright : (c) Justus Adam, 2016
License : BSD3
Maintainer : dev@justus.science
Stability : experimental
Portability : POSIX
-}
module Marvin
( -- * Scripts
Script(..), defineScript, ScriptInit
, ScriptId
, ScriptDefinition
, IsAdapter
-- * Reacting
, hear, respond, customTrigger, send, reply, messageChannel
, getData, getMessage, getMatch, getUsername, getChannelName
, Message(..), User, Channel
, getConfigVal, requireConfigVal
, BotReacting, HasMessage(messageLens), HasMatch(matchLens)
-- ** Advanced actions
, extractAction, extractReaction
-- * Lenses and internal types
, HasScriptId(scriptId), HasConfig(config), HasAdapter(adapter), HasMessageField(messageField), HasMatchField(matchField), HasVariable(variable), BotActionState(BotActionState), MessageReactionData(MessageReactionData), HasActions(actions)
) where
import Marvin.Adapter (IsAdapter)
import Marvin.Internal
import Marvin.Internal.Types
import Marvin.Types