Stability | experimental |
---|---|
Maintainer | Ertugrul Soeylemez |
Parser and printer for IRC messages.
- data Message = Message {
- msgOrigin :: !(Maybe UserSpec)
- msgCommand :: !Command
- messageParser :: ServerSet -> Parser Message
- readMessage :: ServerSet -> MsgString -> Maybe Message
- showMessage :: Message -> MsgString
- data Command
- = StringCmd CommandName [CommandArg]
- | NumericCmd Integer [CommandArg]
- | JoinCmd (Map ChannelName (Maybe ChannelKey))
- commandParser :: Parser Command
- showCommand :: Command -> MsgString
IRC messages
Data type for IRC messages.
messageParser :: ServerSet -> Parser MessageSource
Parser for IRC messages.
readMessage :: ServerSet -> MsgString -> Maybe MessageSource
Run the messageParser
parser.
showMessage :: Message -> MsgStringSource
Turn a Message
into a ByteString
. It will already contain
"\r\n" and can be sent as is to the IRC server.
IRC commands
Data type for IRC commands.
StringCmd CommandName [CommandArg] | Arbitrary string command. |
NumericCmd Integer [CommandArg] | Arbitrary numeric command. |
JoinCmd (Map ChannelName (Maybe ChannelKey)) | Join command with a list of channels as well as channel keys. |
commandParser :: Parser CommandSource
Parser for IRC commands and their arguments.
showCommand :: Command -> MsgStringSource
Turn a Command
into a ByteString
. Please note that a command
does not contain an origin specification. You should use
showMessage
to format a an IRC message to be sent to the server.