clogparse-0.1: Data/IRC/Event.hs
-- | Represents events in an IRC channel.
-- These do not correspond precisely to messages of the IRC
-- protocol. They provide a somewhat higher-level view.
module Data.IRC.Event
( Nick (..)
, Event (..)
, EventAt(..)
) where
import qualified Data.Time as Time
import qualified Data.Text as T
-- | Event with timestamp.
data EventAt
= EventAt Time.UTCTime Event -- ^ Event with timestamp.
| NoParse T.Text -- ^ Unparsable line.
deriving (Show, Eq, Ord)
-- | IRC nicks.
newtype Nick = Nick T.Text
deriving (Show, Eq, Ord)
-- | Events in an IRC channel.
data Event
= Join Nick T.Text -- ^ User joined.
| Part Nick T.Text -- ^ User left the channel.
| Quit Nick T.Text -- ^ User quit the server.
| ReNick Nick Nick -- ^ User changed from one to another nick.
| Talk Nick T.Text -- ^ User spoke (@PRIVMSG@).
| Notice Nick T.Text -- ^ User spoke (@NOTICE@).
| Act Nick T.Text -- ^ User acted (@CTCP ACTION@).
| Kick Nick Nick T.Text -- ^ User was kicked by user.
| Mode Nick T.Text -- ^ User set mode on the channel.
| Log T.Text -- ^ Logging started or stopped.
| Topic T.Text -- ^ Topic listing or change.
| Names T.Text -- ^ Users list.
deriving (Show, Eq, Ord)