Safe Haskell | None |
---|---|
Language | Haskell2010 |
- module Network.Irc.Types.Base
- data Prefix
- data UserAddress = UserAddress Username (Maybe Host)
- data Target
- data Address
- data Host
- data Command
- data MaskPart
- newtype Mask = Mask [MaskPart]
- data TargetMask
- data GenericMessage = GenericMessage {}
- data SpecificMessage = SpecificMessage (Maybe Prefix) Message
- data MessageTarget
- data Query
- data Message
- = PassMessage Password
- | NickMessage Nickname
- | UserMessage Username Bool Bool RealName
- | OperMessage Username Password
- | UserModeMessage Nickname [UserMode] [UserMode]
- | ServiceMessage Nickname Mask Text
- | QuitMessage (Maybe Comment)
- | SQuitMessage Hostname Comment
- | JoinMessage (Maybe ([Channel], [ChannelKey]))
- | PartMessage [Channel] (Maybe Comment)
- | ChannelModeMessage [ChannelMode] [ChannelMode]
- | TopicMessage Channel (Maybe ChannelTopic)
- | NamesMessage [Channel] (Maybe Hostname)
- | ListMessage [Channel] (Maybe Hostname)
- | InviteMessage Nickname Channel
- | KickMessage [Channel] [Username] (Maybe Comment)
- | PrivMsgMessage MessageTarget MsgContent
- | PrivActionMessage MessageTarget MsgContent
- | NoticeMessage MessageTarget MsgContent
- | MotdMessage (Maybe Hostname)
- | LusersMessage (Maybe (Mask, Maybe Hostname))
- | VersionMessage (Maybe (Either Hostname Mask))
- | StatsMessage (Maybe (Query, Maybe (Either Hostname Mask)))
- | LinksMessage (Maybe (Maybe (Either Hostname Mask), Mask))
- | TimeMessage (Maybe (Either Hostname Mask))
- | ConnectMessage Hostname PortNumber (Either Hostname Mask)
- | TraceMessage (Maybe Target)
- | AdminMessage (Maybe Target)
- | InfoMessage (Maybe Target)
- | ServlistMessage (Maybe (Mask, Maybe Text))
- | SQueryMessage ServiceName MsgContent
- | WhoMessage (Maybe (Mask, Bool))
- | WhoisMessage (Maybe Hostname) [Mask]
- | WhowasMessage [Nickname] (Maybe (Int, Maybe Hostname))
- | KillMessage Nickname Comment
- | PingMessage Hostname (Maybe Hostname)
- | PongMessage Hostname (Maybe Hostname)
- | ErrorMessage Text
- | AwayMessage (Maybe MsgContent)
- | RehashMessage
- | DieMessage
- | RestartMessage
- | SummonMessage Username (Maybe (Hostname, Maybe Channel))
- | UsersMessage (Maybe Hostname)
- | WallopsMessage MsgContent
- | UserhostMessage [Nickname]
- | IsonMessage [Nickname]
- data AnalysisError
- = WrongNumArgs Int (Maybe ArgSpec)
- | InvalidArg (Maybe Int) (Maybe Text) (Maybe Text)
- | OtherError Text
- data ArgSpec
- data UserMode
- data ChannelMode
- = CModeCreator
- | CModeOperator
- | CModeVoice
- | CModeAnonymous
- | CModeInviteOnly
- | CModeModerated
- | CModeNoMessagesFromOutside
- | CModeQuiet
- | CModePrivate
- | CModeSecret
- | CModeServerReop
- | CModeTopicSettableByChannelOpOnly
- | CModeKey (Maybe ChannelKey)
- | CModeUserLimit (Maybe Int)
- | CModeBanMask (Maybe Mask)
- | CModeExceptionMask (Maybe Mask)
- | CModeInvitationMask (Maybe Mask)
- | CModeOther Char [Text]
- | CModeFreenodeQuiet (Maybe Mask)
- data ChannelModeType
- data GenericReply = GenericReply {}
- data Reply
- = WelcomeReply
- | YourHostReply
- | CreatedReply
- | MyInfoReply
- | BounceReply
- | ISupportReply
- | UserHostReply
- | IsOnReply
- | AwayReply
- | UnAwayReply
- | NoAwayReply
- | WhoIsUserReply
- | WhoIsServerReply
- | WhoIsOperatorReply
- | WhoIsIdleReply
- | EndOfWhoIsReply
- | WhoIsChannelsReply
- | WhoWasUserReply
- | EndOfWhoWasReply
- | ListStartReply
- | ListReply
- | ListEndReply
- | UniqueOpIsReply
- | ChannelModeIsReply
- | NoTopicReply
- | TopicReply
- | InvitingReply
- | SummoningReply
- | InviteListReply
- | EndOfInviteListReply
- | ExceptListReply
- | EndOfExceptListReply
- | VersionReply
- | WhoReply
- | EndOfWhoReply
- | NamesReply ChannelPrivacy Channel [(Privilege, Nickname)]
- | EndOfNamesReply
- | LinksReply
- | EndOfLinksReply
- | BanListReply
- | EndOfBanListReply
- | InfoReply
- | EndOfInfoReply
- | MotdStartReply
- | MessageOfTheDayReply
- | EndOfMessageOfTheDayReply
- | YoureOperReply
- | RehashingReply
- | YoureServiceReply
- | TimeReply
- | UsersStartReply
- | UsersReply
- | EndOfUsersReply
- | NoUsersReply
- | TraceLinkReply
- | TraceConnectingReply
- | TraceHandshakeReply
- | TraceUnknownReply
- | TraceOperatorReply
- | TraceUserReply
- | TraceServerReply
- | TraceServiceReply
- | TraceNewTypeReply
- | TraceClassReply
- | TraceReconnectReply
- | TraceLogReply
- | TraceEndReply
- | StatsLinkInfoReply
- | StatsCommandsReply
- | EndOfStatsReply
- | StatsUptimeReply
- | StatsOLineReply
- | UModeIsReply
- | ServListReply
- | ServListEndReply
- | LuserClientReply
- | LuserOpReply
- | LuserUnknownReply
- | LuserChannelsReply
- | LuserMeReply
- | AdminMeReply
- | AdminLocation1Reply
- | AdminLocation2Reply
- | AdminEmailReply
- | TryAgainReply
- data SpecificReply = SpecificReply Hostname Target Reply
Type Aliases, Newtypes, Other Basics
module Network.Irc.Types.Base
Message Parts
IRC message prefix.
PrefixServer Hostname | The server which sends the message |
PrefixNick Nickname (Maybe Username) (Maybe Host) | The user which sends the message (if the message comes from a user) |
data UserAddress Source #
User address containing a name part (as in "user") and an optional host part (as in "user@host").
Some IRC commands operate on a target, that is either a single user or an entire IRC server.
A host, either a hostname (e.g. irc.freenode.net
) or an IP address, or a
cloak assigned by the server.
An IRC command code. Either a named command, or a numeric one.
Mask
Part of a Mask
.
MaskChar Char | A literal character. |
MaskWildOne | A wildcard which matches a single character. |
MaskWildMany | A wildcard which matches zero or more characters. |
A pattern for matching host and server names. A mask in the protocol is a
string which consists of literal characters and wildcards. There are two
wildcards:
, which matches a single character; ?
, which matches any
number of characters (zero or more).*
data TargetMask Source #
Some IRC command parameters are targets, and one way to specify a target
is using a Mask
.
HostMask Mask | Host mask, prefixed with |
ServerMask Mask | Server mask, prefixed with |
Message
data GenericMessage Source #
A generic IRC message. It consists of a sender prefix, command name (string or numeric) and optionally a list of parameters.
data SpecificMessage Source #
An IRC message of a specific type. This includes only messages whose command is a name. Messages with a numeric command are handled in the Network.IRC.Fun.Messages.Reply module.
data MessageTarget Source #
Some IRC commands have targets. For example, to which channel to send a given text message. Targets are specified as parameters in IRC messages.
ChannelTarget Channel | An IRC channel. |
UserTarget (Maybe Nickname) (Maybe UserAddress) (Maybe Hostname) | An IRC user. Possible combinations in the protocol are:
|
MaskTarget TargetMask | A mask which matches the server or host of the users to whom the message should be sent. |
A server query. Can be sent through a StatsMessage
.
Connections | TODO |
CommandUsage | TODO |
PrivilegedUsers | TODO |
Uptime | TODO |
OtherQuery Char | TODO |
An IRC message of specific type (excluding the optional sender prefix, see
SpecificMessage
).
data AnalysisError Source #
An error occuring while analyzing a parsed IRC protocol message into a
specific message type, such as JoinMessage
.
WrongNumArgs Int (Maybe ArgSpec) | |
InvalidArg (Maybe Int) (Maybe Text) (Maybe Text) | |
OtherError Text |
Specifies the number of parameter a certain IRC message type accepts.
Modes
TODO
data ChannelMode Source #
TODO
Reply
data GenericReply Source #
TODO
TODO
data SpecificReply Source #
An IRC server numeric reply of a specific type.