An IRC client library for Erlang
Erlang Makefile
Switch branches/tags
Nothing to show
Latest commit 1f7b2b2 Jun 11, 2017


                   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

IRC: #erlang @ freenode

== 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, Client} = eirc:start_client(mybot, [{bots, [{example_bot, eirc_example_bot, []}]}]).
    Initiating bot...

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

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

4) Connect the client and interact and what not   
    > eirc:connect_and_logon(Client, "", 6667, "mazenharake").
    Connected to "":6667
    Logging in as "mazenharake"
    NOTICE (""): ["*** Looking up your hostname..."]
    NOTICE (""): ["*** Checking Ident"]
    NOTICE (""): ["*** Found your hostname"]
    NOTICE (""): ["*** 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").
    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...").
    QUIT: "mazenharake" quit ("Client Quit")
    RAW: "ERROR"; ["Closing Link: (Client Quit)"]
    Connection closed!

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