Safe Haskell | None |
---|---|
Language | Haskell2010 |
Types for IRC clients. See also Network.IRC.Conduit and Network.IRC.CTCP.
- type UnicodeEvent = Event Text
- type UnicodeSource = Source Text
- type UnicodeMessage = Message Text
- type IRC a = ReaderT IRCState IO a
- data IRCState = IRCState {}
- newIRCState :: MonadIO m => ConnectionConfig -> InstanceConfig -> m IRCState
- ircState :: IRC IRCState
- getConnectionConfig :: IRCState -> ConnectionConfig
- getInstanceConfig :: IRCState -> TVar InstanceConfig
- getInstanceConfig' :: MonadIO m => IRCState -> m InstanceConfig
- connectionConfig :: IRC ConnectionConfig
- instanceConfigTVar :: IRC (TVar InstanceConfig)
- instanceConfig :: IRC InstanceConfig
- putInstanceConfig :: InstanceConfig -> IRC ()
- data ConnectionConfig = ConnectionConfig {
- _func :: Int -> ByteString -> IO () -> Consumer (Either ByteString IrcEvent) IO () -> Producer IO IrcMessage -> IO ()
- _sendqueue :: TBMChan IrcMessage
- _server :: ByteString
- _port :: Int
- _flood :: NominalDiffTime
- _disconnect :: IRC ()
- data InstanceConfig = InstanceConfig {
- _nick :: Text
- _username :: Text
- _realname :: Text
- _channels :: [Text]
- _ctcpVer :: Text
- _eventHandlers :: [EventHandler]
- _ignore :: [(Text, Maybe Text)]
- data EventType
- data EventHandler = EventHandler {
- _description :: Text
- _matchType :: EventType
- _eventFunc :: UnicodeEvent -> IRC ()
- eventType :: Event a -> EventType
- data Event a :: * -> * = Event {}
- data Source a :: * -> *
- data Message a :: * -> *
- = Privmsg (Target a) (Either CTCPByteString a)
- | Notice (Target a) (Either CTCPByteString a)
- | Nick (NickName a)
- | Join (ChannelName a)
- | Part (ChannelName a) (Reason a)
- | Quit (Reason a)
- | Mode (Target a) IsModeSet [ModeFlag a] [ModeArg a]
- | Topic (ChannelName a) a
- | Invite (ChannelName a) (NickName a)
- | Kick (ChannelName a) (NickName a) (Reason a)
- | Ping (ServerName a) (Maybe (ServerName a))
- | Pong (ServerName a)
- | Numeric Int [NumericArg a]
- | RawMsg a
Type synonyms
type UnicodeEvent = Event Text Source
type UnicodeSource = Source Text Source
type UnicodeMessage = Message Text Source
State
IRCState | |
|
newIRCState :: MonadIO m => ConnectionConfig -> InstanceConfig -> m IRCState Source
Construct a new IRC state
getConnectionConfig :: IRCState -> ConnectionConfig Source
Extract the connection configuration from an IRC state
getInstanceConfig :: IRCState -> TVar InstanceConfig Source
Extract the instance configuration from an IRC state
getInstanceConfig' :: MonadIO m => IRCState -> m InstanceConfig Source
Extract the current snapshot of the instance configuration from an IRC state
connectionConfig :: IRC ConnectionConfig Source
Access the connection config
instanceConfigTVar :: IRC (TVar InstanceConfig) Source
Access the instance config TVar
instanceConfig :: IRC InstanceConfig Source
Access the instance config as it is right now.
putInstanceConfig :: InstanceConfig -> IRC () Source
Overwrite the instance config, even if it has changed since we looked at it.
data ConnectionConfig Source
The static state of an IRC server connection.
ConnectionConfig | |
|
data InstanceConfig Source
The updateable state of an IRC connection.
InstanceConfig | |
|
Events
Types of events which can be caught.
data EventHandler Source
A function which handles an event.
EventHandler | |
|
Re-exported
data Event a :: * -> *
data Source a :: * -> *
data Message a :: * -> *
Privmsg (Target a) (Either CTCPByteString a) | |
Notice (Target a) (Either CTCPByteString a) | |
Nick (NickName a) | |
Join (ChannelName a) | |
Part (ChannelName a) (Reason a) | |
Quit (Reason a) | |
Mode (Target a) IsModeSet [ModeFlag a] [ModeArg a] | |
Topic (ChannelName a) a | |
Invite (ChannelName a) (NickName a) | |
Kick (ChannelName a) (NickName a) (Reason a) | |
Ping (ServerName a) (Maybe (ServerName a)) | |
Pong (ServerName a) | |
Numeric Int [NumericArg a] | |
RawMsg a |