Giter Site home page Giter Site logo

canwe / eirc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mazenharake/eirc

0.0 2.0 0.0 58 KB

An IRC client library for Erlang

Home Page: http://mazenharake.wordpress.com

License: BSD 2-Clause "Simplified" License

Makefile 0.55% Erlang 99.45%

eirc's Introduction

================================================================================
                   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

eirc's People

Contributors

mazenharake avatar

Watchers

James Cloos avatar Victor Konopelko avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.