Copyright | (c) Justus Adam 2016 |
---|---|
License | BSD3 |
Maintainer | dev@justus.science |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
- data Event a
- = MessageEvent (User a) (Channel a) Message TimeStamp
- | CommandEvent (User a) (Channel a) Message TimeStamp
- | ChannelJoinEvent (User a) (Channel a) TimeStamp
- | ChannelLeaveEvent (User a) (Channel a) TimeStamp
- | TopicChangeEvent (User a) (Channel a) Topic TimeStamp
- type RunWithAdapter a = EventHandler a -> AdapterM a ()
- type EventHandler a = Event a -> IO ()
- type RunnerM = LoggingT IO
- class IsAdapter a where
- data AdapterId a
- lookupFromAdapterConfig :: (IsAdapter a, Configured v) => Name -> AdapterM a (Maybe v)
- requireFromAdapterConfig :: (IsAdapter a, Configured v) => Name -> AdapterM a v
- lookupFromAppConfig :: Configured v => Name -> AdapterM a (Maybe v)
- requireFromAppConfig :: Configured v => Name -> AdapterM a v
- getAdapterConfig :: forall a. IsAdapter a => AdapterM a Config
- getAppConfig :: AdapterM a Config
- liftAdapterAction :: (MonadIO m, HasConfigAccess m, AccessAdapter m, IsAdapter a, a ~ AdapterT m) => AdapterM a r -> m r
Documentation
Representation for the types of events which can occur
MessageEvent (User a) (Channel a) Message TimeStamp | |
CommandEvent (User a) (Channel a) Message TimeStamp | |
ChannelJoinEvent (User a) (Channel a) TimeStamp | |
ChannelLeaveEvent (User a) (Channel a) TimeStamp | |
TopicChangeEvent (User a) (Channel a) Topic TimeStamp |
type RunWithAdapter a = EventHandler a -> AdapterM a () Source #
type EventHandler a = Event a -> IO () Source #
class IsAdapter a where Source #
Basic functionality required of any adapter
adapterId :: AdapterId a Source #
Used for scoping config and logging
messageChannel :: Channel a -> Text -> AdapterM a () Source #
Post a message to a channel given the internal channel identifier
initAdapter :: RunnerM a Source #
Initialize the adapter state
runWithAdapter :: RunWithAdapter a Source #
Initialize and run the bot
getUsername :: User a -> AdapterM a Text Source #
Resolve a username given the internal user identifier
getChannelName :: Channel a -> AdapterM a Text Source #
Resolve the human readable name for a channel given the internal channel identifier
resolveChannel :: Text -> AdapterM a (Maybe (Channel a)) Source #
Resolve to the internal channel identifier given a human readable name
IsAdapter ShellAdapter Source # | |
MkTelegram a => IsAdapter (TelegramAdapter a) Source # | |
MkSlack a => IsAdapter (SlackAdapter a) Source # | |
A type, basically a String, which identifies an adapter to the config and the logging facilities.
lookupFromAdapterConfig :: (IsAdapter a, Configured v) => Name -> AdapterM a (Maybe v) Source #
requireFromAdapterConfig :: (IsAdapter a, Configured v) => Name -> AdapterM a v Source #
lookupFromAppConfig :: Configured v => Name -> AdapterM a (Maybe v) Source #
requireFromAppConfig :: Configured v => Name -> AdapterM a v Source #
getAppConfig :: AdapterM a Config Source #
liftAdapterAction :: (MonadIO m, HasConfigAccess m, AccessAdapter m, IsAdapter a, a ~ AdapterT m) => AdapterM a r -> m r Source #