Switch branches/tags
Nothing to show
Commits on May 5, 2011
Commits on May 3, 2011
  1. Fixed the example

    committed May 3, 2011
Commits on May 2, 2011
Commits on May 1, 2011
  1. Remove old code

    committed May 1, 2011
  2. Redesign how bots are used

    A bot now belongs to a client process. When a client is started it has
    the option to start bots as well. These bots will be supervised and will
    spawn one process per bot. Additional bots can be installed using an
    API in the eirc module.
    committed May 1, 2011
Commits on Apr 21, 2011
Commits on Apr 18, 2011
Commits on Apr 17, 2011
  1. Restructure code to make more generic and handle more callbacks

    Changed the way the callbacks are called to make it a bit more generic,
    this will allow two things:
    1) If a certain state needs to do something specific before it calls the
    callback or if it should handle a custom return value it can now do that
    2) Create custom "events" which are not necessarily connected to IRC
    As a result of the second bullet there are now 3 more events added to
    the list of callbacks: on_connect/3, on_logon/5 and on_logon/1
    committed Apr 17, 2011
Commits on Apr 15, 2011
  1. Housekeeping

    committed Apr 15, 2011
  2. Add on_quit command

    on_quit triggers when a user is in a channel that the bot is in.
    committed Apr 15, 2011
  3. Add on_ping, on_kick, on_nick and on_raw callbacks

    on_ping happens when the server sends a ping request. on_kick happens
    when someone is kicked from a channel the bot is in. on_nick happens
    when someone changes his/her nickname in a channel and on_raw is sent if
    none of the previous commands are picked up by the behaviour and gives
    the bot a chance to respond to them.
    committed Apr 15, 2011
Commits on Apr 11, 2011
  1. Add default ctcp response if callback module doesn't export on_ctcp

    When the callback module doesn't export on_ctcp then catch the error and
    send a default response. This is for ctcp only. Do not do anything in
    case the other callbacks aren't exported.
    committed Apr 11, 2011
Commits on Apr 10, 2011
  1. Add on_mode and on_topic callbacks for the behaviour

    When the server or the user sends a MODE msg to the client the behaviour
    will now trigger the on_mode callback and if someone sets a topic in a
    channel the client is in the behaviour will trigger on_topic
    committed Apr 10, 2011
Commits on Apr 4, 2011
  1. Add more event support to behaviour (on_* events) and extend example

    The behaviour now also supports on_ctcp, on_text, on_notice, on_join and
    on_part. The state of the eirc client can now also be retrieved using
    eirc:state() which is used to get data about the server connection in a
    proplist format. Some printouts were removed.
    committed Apr 10, 2011
  2. Add gen_eircbot to make it easier to create bots.

    gen_eircbot is a behaviour to make it possible for botmakers to quickly
    get a bot up and running without having to deal with IRC specific
    First version handles the callbacks init, on_connect and terminate
    committed Apr 10, 2011
Commits on Apr 3, 2011
  1. Add supervisor to monitor the client and extend some APIs

    The client is started under a supervisor, this lets the user run
    multiple clients which are supervised without taking care of the code
    for it. One can still use the eirc_cl:x module to start the clients
    directly and bypass the supervisor if the functionality is not needed.
    Some APIs for introspection were added and the idea now is that a "bot"
    must register with the client to get events, it is no longer assumed
    that the process that starts the client is the one that wants to receive
    the irc messages. To connect and login easier the logon API was given an
    easier API for one that is not familiar with the IRC protocol and
    usually (can't think of when not) a user wants to logon after connecting
    so this was moved into one API.
    committed Apr 3, 2011
Commits on Aug 3, 2010
  1. Changed the license to a 2-clause BSD.

    Mazen Harake committed Aug 3, 2010
  2. Removed some unnecessary compile flags

    Mazen Harake committed Aug 3, 2010
Commits on Jun 13, 2010
  1. Added gitignore to not be bothered by beams and fixed the app file to…

    … have a proper version tag
    committed Jun 13, 2010
Commits on Apr 18, 2010
  1. Added a check which will help to know if a message/notice is coming f…

    …rom a user or from a server. Also removed a printout
    committed Apr 18, 2010
Commits on Apr 15, 2010
  1. Updated README a little

    committed Apr 15, 2010
  2. Added an example bot to show how the client library is intended to be…

    … used. It demonstrates the most basic examples.
    committed Apr 15, 2010
Commits on Apr 14, 2010
  1. Added functionality to "fill up" the users list when entering a chann…

    …el and then maintaining it. Added some introspection functions to get if a user is in a channel and what type the channel is.
    committed Apr 14, 2010
  2. One can now PART a channel using existing API :P Also added functiona…

    …lity to track topics in a channel
    committed Apr 14, 2010
Commits on Apr 13, 2010
  1. Added basic support to join/leave channels and also keeping track of …

    …people coming in an leaving channels the client are in.
    committed Apr 13, 2010
  2. Changed the handling of CTCP events somewhat. There is now a flag in …

    …the #ircmsg record called ctcp. It can have one of the following values: true, false or invalid.
    true means that the message was interpreted as an CTCP message (as specified informally on the internet and conforms with how mIRC sends/receives CTCP messages).
    false means it is anything other then a CTCP message.
    invalid means that it looked as if it was an CTCP message but it turned out that it wasn't conformant with the proper format. A CTCPMsg must be wrapped inside a PRIVMSG command and the second argument must be the following format: CTCPMsg = "'\001'<Chars-Except-001-Char>'\001'" Thus the whole thing looks like this when coming from the server: "PRIVMSG <nick> :<CTCPMsg>\r\n", If it doesn't then the ctcp flag will be invalid. Invalid CTCP messages will only be delivered back to the controlling process if the "{debug, true}" option has been passed with the initial Options when starting the client.
    committed Apr 13, 2010
  3. Added lost file.

    committed Apr 13, 2010
  4. 1) Made logon/3 asynch; instead the user is expected to either rely o…

    …n a specific event received (either through message or handle_event) OR by checking the new api is_logged_on/1 which will return true if the initial PASS, NICK, USER combo was successful.
    2) Added basic CTCP responses for PING, TIME and VERSION requests.
    New philosophy: Will not try to be synch over asynch, it is not worth it and the protocol is CRAP anyway. The Fins must have been drunk when developing it.
    committed Apr 13, 2010