XMPP-0.0.2: Network/XMPP.hs
-- |This library aims to make writing XMPP clients (in particular
-- bots) easy and fun. Here is a small example:
--
-- > import Network
-- > import Network.XMPP
-- >
-- > -- The bot's JID is "bot@example.com"
-- > botUsername = "bot"
-- > botServer = "example.com"
-- > botPassword = "secret"
-- > botResource = "bot"
-- >
-- > main :: IO ()
-- > main = withSocketsDo $
-- > do
-- > -- Connect to server...
-- > c <- openStream botServer
-- > getStreamStart c
-- >
-- > runXMPP c $ do
-- > -- ...authenticate...
-- > startAuth botUsername botServer botPassword botResource
-- > sendpresence
-- > -- ...and do something.
-- > run
-- >
-- > run :: XMPP ()
-- > run = do
-- > -- Wait for an incoming message...
-- > msg <- waitForStanza (isChat `conj` hasBody)
-- > let sender = maybe "" id (getAttr "from" msg)
-- > len = length $ maybe "" id (getMessageBody msg)
-- > -- ...answer...
-- > sendMessage sender ("Your message was "++(show len)++" characters long.")
-- > -- ...and repeat.
-- > run
--
-- XMPP is a protocol for streaming XML also known as Jabber. It is
-- described in RFCs 3920 and 3921, and in a series of XMPP Extension
-- Protocols (XEPs). All of this can be found at
-- <http://www.xmpp.org>.
module Network.XMPP (
-- * The XMPP monad
module Network.XMPP.XMPPMonad
-- * XML functions
, XMLElem(..)
, xmlPath
, xmlPath'
, getAttr
, getCdata
, xmlToString
-- * Stanza manipulation
, module Network.XMPP.Stanzas
-- * JID functions
, module Network.XMPP.JID
-- * Authentication
, module Network.XMPP.Auth
-- * TCP connections
, module Network.XMPP.TCPConnection
-- * Abstract connections
, module Network.XMPP.XMPPConnection
)
where
import Network.XMPP.Auth
import Network.XMPP.JID
import Network.XMPP.Stanzas
import Network.XMPP.TCPConnection
import Network.XMPP.XMLParse
import Network.XMPP.XMPPConnection hiding ( sendStanza )
import Network.XMPP.XMPPMonad