{-# LANGUAGE OverloadedStrings #-}
module Network.IRC.Commands (
Channel
, Password
, nick
, user
, joinChan
, part
, quit
, privmsg
, kick
, pong
) where
import Data.ByteString
import Network.IRC.Base
type Channel = ByteString
type Password = ByteString
type Reason = ByteString
mkMessage :: ByteString -> [Parameter] -> Message
mkMessage :: ByteString -> [ByteString] -> Message
mkMessage ByteString
cmd [ByteString]
params = Maybe Prefix -> ByteString -> [ByteString] -> Message
Message Maybe Prefix
forall a. Maybe a
Nothing ByteString
cmd [ByteString]
params
nick :: UserName -> Message
nick :: ByteString -> Message
nick ByteString
u = ByteString -> [ByteString] -> Message
mkMessage ByteString
"NICK" [ByteString
u]
user :: UserName -> ServerName -> ServerName -> RealName -> Message
user :: ByteString -> ByteString -> ByteString -> ByteString -> Message
user ByteString
u ByteString
h ByteString
s ByteString
r = ByteString -> [ByteString] -> Message
mkMessage ByteString
"USER" [ByteString
u,ByteString
h,ByteString
s,ByteString
r]
joinChan :: Channel -> Message
joinChan :: ByteString -> Message
joinChan ByteString
c = ByteString -> [ByteString] -> Message
mkMessage ByteString
"JOIN" [ByteString
c]
kick :: Channel -> UserName -> Maybe Reason -> Message
kick :: ByteString -> ByteString -> Maybe ByteString -> Message
kick ByteString
c ByteString
u (Just ByteString
r) = ByteString -> [ByteString] -> Message
mkMessage ByteString
"KICK" [ByteString
c,ByteString
u,ByteString
r]
kick ByteString
c ByteString
u Maybe ByteString
Nothing = ByteString -> [ByteString] -> Message
mkMessage ByteString
"KICK" [ByteString
c,ByteString
u]
part :: Channel -> Message
part :: ByteString -> Message
part ByteString
c = ByteString -> [ByteString] -> Message
mkMessage ByteString
"PART" [ByteString
c]
quit :: Maybe ByteString -> Message
quit :: Maybe ByteString -> Message
quit (Just ByteString
m) = ByteString -> [ByteString] -> Message
mkMessage ByteString
"QUIT" [ByteString
m]
quit Maybe ByteString
Nothing = ByteString -> [ByteString] -> Message
mkMessage ByteString
"QUIT" []
privmsg :: ByteString -> ByteString -> Message
privmsg :: ByteString -> ByteString -> Message
privmsg ByteString
c ByteString
m = ByteString -> [ByteString] -> Message
mkMessage ByteString
"PRIVMSG" [ByteString
c,ByteString
m]
pong :: ServerName -> Message
pong :: ByteString -> Message
pong ByteString
s = ByteString -> [ByteString] -> Message
mkMessage ByteString
"PONG" [ByteString
s]