Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Network.IRC.Fun.Messages.Types
Description
This module provides datatypes for modeling parts of IRC messages.
- data Prefix
- data UserAddr = UserAddr 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 Message
- = PassMessage Password
- | NickMessage NickName
- | UserMessage UserName Bool Bool RealName
- | OperMessage UserName Password
- | UserModeMessage NickName [UserMode] [UserMode]
- | ServiceMessage NickName Mask String
- | QuitMessage (Maybe String)
- | SQuitMessage ServerName String
- | JoinMessage (Maybe ([ChannelName], [ChannelKey]))
- | PartMessage [ChannelName] (Maybe String)
- | ChannelModeMessage [ChannelMode] [ChannelMode]
- | TopicMessage ChannelName (Maybe ChannelTopic)
- | NamesMessage [ChannelName] (Maybe ServerName)
- | ListMessage [ChannelName] (Maybe ServerName)
- | InviteMessage NickName ChannelName
- | KickMessage [ChannelName] [UserName] (Maybe Comment)
- | PrivMsgMessage MessageTarget String
- | PrivActionMessage MessageTarget String
- | NoticeMessage MessageTarget String
- | MotdMessage (Maybe ServerName)
- | LusersMessage (Maybe (Mask, Maybe ServerName))
- | VersionMessage (Maybe (Either ServerName Mask))
- | StatsMessage (Maybe (Query, Maybe (Either ServerName Mask)))
- | LinksMessage (Maybe (Maybe (Either ServerName Mask), Mask))
- | TimeMessage (Maybe (Either ServerName Mask))
- | ConnectMessage ServerName PortNumber (Either ServerName Mask)
- | TraceMessage (Maybe Target)
- | AdminMessage (Maybe Target)
- | InfoMessage (Maybe Target)
- | ServlistMessage (Maybe (Mask, Maybe String))
- | SQueryMessage ServiceName String
- | WhoMessage (Maybe (Mask, Bool))
- | WhoisMessage (Maybe ServerName) [Mask]
- | WhowasMessage [NickName] (Maybe (Int, Maybe ServerName))
- | KillMessage NickName Comment
- | PingMessage ServerName (Maybe ServerName)
- | PongMessage ServerName (Maybe ServerName)
- | ErrorMessage String
- | AwayMessage (Maybe String)
- | RehashMessage
- | DieMessage
- | RestartMessage
- | SummonMessage UserName (Maybe (ServerName, Maybe ChannelName))
- | UsersMessage (Maybe ServerName)
- | WallopsMessage String
- | UserhostMessage [NickName]
- | IsonMessage [NickName]
- 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 [String]
- | CModeFreenodeQuiet (Maybe Mask)
- data ChannelModeType
- data CommandResponseCode
- = ReplyWelcome
- | ReplyYourHost
- | ReplyCreated
- | ReplyMyInfo
- | ReplyBounce
- | ReplyUserHost
- | ReplyIsOn
- | ReplyAway
- | ReplyUnAway
- | ReplyNoAway
- | ReplyWhoIsUser
- | ReplyWhoIsServer
- | ReplyWhoIsOperator
- | ReplyWhoIsIdle
- | ReplyEndOfWhoIs
- | ReplyWhoIsChannels
- | ReplyWhoWasUser
- | ReplyEndOfWhoWas
- | ReplyListStart
- | ReplyList
- | ReplyListEnd
- | ReplyUniqueOpIs
- | ReplyChannelModeIs
- | ReplyNoTopic
- | ReplyTopic
- | ReplyInviting
- | ReplySummoning
- | ReplyInviteList
- | ReplyEndOfInviteList
- | ReplyExceptList
- | ReplyEndOfExceptList
- | ReplyVersion
- | ReplyWhoReply
- | ReplyEndOfWho
- | ReplyNameReply
- | ReplyEndOfNames
- | ReplyLinks
- | ReplyEndOfLinks
- | ReplyBanList
- | ReplyEndOfBanList
- | ReplyInfo
- | ReplyEndOfInfo
- | ReplyMotdStart
- | ReplyMessageOfTheDay
- | ReplyEndOfMessageOfTheDay
- | ReplyYoureOper
- | ReplyRehashing
- | ReplyYoureService
- | ReplyTime
- | ReplyUsersStart
- | ReplyUsers
- | ReplyEndOfUsers
- | ReplyNoUsers
- | ReplyTraceLink
- | ReplyTraceConnecting
- | ReplyTraceHandshake
- | ReplyTraceUnknown
- | ReplyTraceOperator
- | ReplyTraceUser
- | ReplyTraceServer
- | ReplyTraceService
- | ReplyTraceNewType
- | ReplyTraceClass
- | ReplyTraceReconnect
- | ReplyTraceLog
- | ReplyTraceEnd
- | ReplyStatsLinkInfo
- | ReplyStatsCommands
- | ReplyEndOfStats
- | ReplyStatsUptime
- | ReplyStatsOLine
- | ReplyUModeIs
- | ReplyServList
- | ReplyServListEnd
- | ReplyLuserClient
- | ReplyLuserOp
- | ReplyLuserUnknown
- | ReplyLuserChannels
- | ReplyLuserMe
- | ReplyAdminMe
- | ReplyAdminLocation1
- | ReplyAdminLocation2
- | ReplyAdminEmail
- | ReplyTryAgain
- | ReplyFreenodeISupport
- data ErrorReplyCode
- = ErrorNoSuchNick
- | ErrorNoSuchServer
- | ErrorNoSuchChannel
- | ErrorCannotSendToChannel
- | ErrorTooManyChannels
- | ErrorWasNoSuchNick
- | ErrorTooManyTargets
- | ErrorNoSuchService
- | ErrorNoOrigin
- | ErrorNoRecipient
- | ErrorNoTextToSend
- | ErrorNoTopLevel
- | ErrorWildTopLevel
- | ErrorBadMask
- | ErrorUnknownCommand
- | ErrorNoMessageOfTheDay
- | ErrorNoAdminInfo
- | ErrorFileError
- | ErrorNoNickNameGiven
- | ErrorErroneousNickName
- | ErrorNickNameInUse
- | ErrorNickCollision
- | ErrorUnavailableResource
- | ErrorUserNotInChannel
- | ErrorNotOnChannel
- | ErrorUserOnChannel
- | ErrorNoLogin
- | ErrorSummonDisabled
- | ErrorUsersDisabled
- | ErrorNotRegistered
- | ErrorNeedMoreParams
- | ErrorAlreadyRegistered
- | ErrorNoPermissionForHost
- | ErrorPasswordMismatch
- | ErrorYoureBannedCreep
- | ErrorYouWillBeBanned
- | ErrorKeySet
- | ErrorChannelIsFull
- | ErrorUnknownMode
- | ErrorInviteOnlyChannel
- | ErrorBannedFromChannel
- | ErrorBadChannelKey
- | ErrorBadChannelMask
- | ErrorNoChannelModes
- | ErrorBanListFull
- | ErrorNoPrivileges
- | ErrorChannelOpPrivilegesNeeded
- | ErrorCantKillServer
- | ErrorRestricted
- | ErrorUniqueOpPrivilegesNeeded
- | ErrorNoOperHost
- | ErrorUModeUnknownFlag
- | ErrorUsersDontMatch
- data ReservedReplyCode
- = ReservedReplyServiceInfo
- | ReservedReplyEndOfServices
- | ReservedReplyService
- | ReservedReplyNone
- | ReservedReplyWhoIsChannelOp
- | ReservedReplyKillDone
- | ReservedReplyClosing
- | ReservedReplyCloseEnd
- | ReservedReplyInfoStart
- | ReservedReplyMyPortIs
- | ReservedReplyStatsCLine
- | ReservedReplyStatsNLine
- | ReservedReplyStatsILine
- | ReservedReplyStatsKLine
- | ReservedReplyStatsQLine
- | ReservedReplyStatsYLine
- | ReservedReplyStatsVLine
- | ReservedReplyStatsLLine
- | ReservedReplyStatsHLine
- | ReservedReplyStatsSLine
- | ReservedReplyStatsPing
- | ReservedReplyStatsBLine
- | ReservedReplyStatsDLine
- data ReservedErrorCode = ReservedErrorNoServiceHost
- 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 ChannelName [(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 ServerName Target Reply
- data Privilege
- data ChannelPrivacy
Message Parts
IRC message prefix.
User address containing a name part (as in "user") and an optional host part (as in "user@host").
TODO
Constructors
NickTarget NickName | |
ServerTarget ServerName |
An IP address.
A host, either a hostname (e.g. irc.freenode.net
) or an IP address, or a
cloak assigned by the server.
TODO
Constructors
StringCommand CommandName | |
NumericCommand Int |
Mask
Part of a Mask
.
Constructors
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
.
Constructors
HostMask Mask | Host mask, prefixed with |
ServerMask Mask | Server mask, prefixed with |
Instances
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.
Constructors
GenericMessage | |
Instances
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.
Constructors
SpecificMessage (Maybe Prefix) Message |
Instances
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.
Constructors
ChannelTarget ChannelName | An IRC channel. |
UserTarget (Maybe NickName) (Maybe UserAddr) (Maybe ServerName) | 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. |
Instances
An IRC message of specific type (excluding the optional sender prefix, see
SpecificMessage
).
Constructors
Modes
TODO
data ChannelMode Source
TODO
Constructors
Instances
data ChannelModeType Source
Constructors
ModeTypeList | |
ModeTypeSetting | |
ModeTypeMaybeSetting | |
ModeTypeFlag |
Reply
data CommandResponseCode Source
TODO
Constructors
Instances
data ErrorReplyCode Source
Constructors
Instances
data ReservedReplyCode Source
Constructors
Instances
TODO
Constructors
data SpecificReply Source
An IRC server numeric reply of a specific type.
Constructors
SpecificReply ServerName Target Reply |
Instances
data ChannelPrivacy Source
Instances