An IRC client library for Erlang
Erlang Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ebin
include
src
.gitignore
LICENSE
Makefile
README

README

================================================================================
                   Eirc - An IRC client library for Erlang
================================================================================

Eirc is an IRC client library which is useful if an Erlang application need to
connect to an IRC server e.g. for a kind of notification system or similar. It
aims to implement the full protocol specified in RFC2812 and all relevant parts
in RFC1459.

== Contact ==
For feedback, comments and/or suggestions

Project: http://www.github.com/mazenharake/eirc
Blog: http://mazenharake.wordpress.com
IRC: #erlang @ freenode
MailingList: http://www.erlang.org/faq.html

== License ==
Please see the LICENSE file

== Compiling ==
Just run make.

== Example ==
To run a client with a bot attached do the following:

1) Compile
    $ make

2) Open a shell E.g. (from the eirc root dir).
    $ erl -pa ../eirc/ebin

3a) In the Erlang shell type (formatting for clarity):
    > application:start(eirc).
    ok

    > {ok, Client} = eirc:start_client(mybot, [{bots, [{example_bot, eirc_example_bot, []}]}]).
    Initiating bot...
    {ok,<0.39.0>}

3b) Another way of using using a bot is to install it
    > {ok, Client} = eirc:start_client(mybot, []).
    {ok,<0.39.0>}

    > eirc:install_bot(mybot, example_bot, eirc_example_bot, []).
    Initiating bot...
    ok

4) Connect the client and interact and what not   
    > eirc:connect_and_logon(Client, "irc.freenode.net", 6667, "mazenharake").
    Connected to "irc.freenode.net":6667
    Logging in as "mazenharake"
    ok
    NOTICE ("zelazny.freenode.net"): ["*** Looking up your hostname..."]
    NOTICE ("zelazny.freenode.net"): ["*** Checking Ident"]
    NOTICE ("zelazny.freenode.net"): ["*** Found your hostname"]
    NOTICE ("zelazny.freenode.net"): ["*** No Ident response"]
    Login successful
    RAW: "001"; ["eircbot","Welcome to the freenode Internet Relay Chat Network eircbot"]
    ...
    MODE: "eircbot" sets "+i" on "eircbot" (parameters: [])

    > eirc:join(Client, "#asecretchannel").
    ok
    JOIN: "eircbot" joined "#asecretchannel"
    MODE: undefined sets "+ns" on "#asecretchannel" (parameters: [[]])
    RAW: "353"; ["eircbot","@","#asecretchannel","@eircbot"]
    RAW: "366"; ["eircbot","#asecretchannel","End of /NAMES list."]

    JOIN: "mazenharake" joined "#asecretchannel"

    TEXT: From ("mazenharake") To ("#asecretchannel") - "Hello Bot!"

5) Disconnect
    > eirc:quit(Client, "The end of the road...").
    ok
    QUIT: "mazenharake" quit ("Client Quit")
    RAW: "ERROR"; ["Closing Link: c-0af670d5.012-10-67626721.cust.bredbandsbolaget.se (Client Quit)"]
    Connection closed!

6) Reconnect or... shutdown the client
   > eirc:stop_client(mybot).
   Bot terminating shutdown...
   ok