irc-fun-client-0.2.0.0: Another library for writing IRC clients.

Safe HaskellNone
LanguageHaskell2010

Network.IRC.Fun.Client.NickTracker

Description

Using the tools provided here, you can track which users are members of which channels. This functionality has a variety of uses, e.g. displaying user lists in client UI and logging/displaying quit messages in the correct channel logs/buffers.

Synopsis

Documentation

isMemberOf :: NickName -> ChannelTracker -> Bool Source

Check whether a nickname is present in a channel.

isInChannel :: NickName -> ChannelName -> NetworkTracker -> Bool Source

Check whether a nickname is present in a channel.

presence :: NickName -> NetworkTracker -> [ChannelName] Source

Check in which channels a nickname is present.

newChannel :: [NickName] -> ChannelTracker Source

Record a channel with the given present nicknames.

newNetwork :: NetworkTracker Source

Create new tracker.

addMember :: NickName -> ChannelTracker -> ChannelTracker Source

Record a nickname being present in a channel.

addToChannel :: ChannelName -> NickName -> NetworkTracker -> NetworkTracker Source

Record a nickname being present in a channel.

changeNick :: NickName -> NickName -> NetworkTracker -> NetworkTracker Source

Record a nickname change. Remove old nickname from the channels in which it's present, and add the new nickname to them.

addChannel :: ChannelName -> [NickName] -> NetworkTracker -> NetworkTracker Source

Record a channel with the given present nicknames.

removeMember :: NickName -> ChannelTracker -> ChannelTracker Source

Record a channel not having a given nickname anymore.

removeFromChannel :: ChannelName -> NickName -> NetworkTracker -> NetworkTracker Source

Record a channel not having a given nickname anymore.

removeFromNetwork :: NickName -> NetworkTracker -> NetworkTracker Source

Record a nickname not being present in any channel anymore.

removeChannel :: ChannelName -> NetworkTracker -> NetworkTracker Source

Remove a channel from the tracker.

removeChannels :: [ChannelName] -> NetworkTracker -> NetworkTracker Source

Remove channels from the tracker.