Skip to content
This repository has been archived by the owner on Nov 12, 2018. It is now read-only.

jengel3/chatter

Repository files navigation

Chatter Build Status Code Climate

Chatter is an IRC client built on node.js, nw.js, and Backbone. The primary goal of Chatter is to provide an easy to use, cross-platform and efficient IRC client.

Developing

  1. Run gulp to compile app files and serve the application. Files will be watched and automatically updated.

Building

  1. Run npm install
  2. Run bower install
  3. Run gulp build
  • This will create a build for your current platform only
  • Specify specific platforms in a comma separated list with --build.
    • Ex. gulp build --build linux64,osx32
  • Build all platforms with --build all
  • If you would like to add the .exe ico and you are on Windows, or have Wine installed, add the --icon flag.
  1. Access compiled files in ./build/Chatter/os/

Event API

Chatter provides a short list of events based on Backbone's event protocol. These events can be accessed through the window Chatter object.

  • message [channel, message] - Triggered when a message is received.
  • sentMessage [receiver, message] - Triggered when a message is sent.
  • topic [channel, topic, nick] - Triggered when the topic is changed.
  • join [channel] - Triggered when a user joins a channel.
  • self:join [channel] - Triggered when the client joins a channel.
  • part [channel] - Triggered when a user leaves a channel.
  • self:part [channel] - Triggered when the client leaves a channel.
  • part [channel] - Triggered when a user quits a channel.
  • self:quit [server] - Triggered when the client quits a server.
  • client:error [message] - Triggered when the client throws an error.
  • client:connect [connection] - Triggered when a client connects to a server successfully.
  • client:disconnect [connection] - Triggered when a client disconnects from a server.
  • focus:channel [channel] - Triggered when a channel is focused by being clicked on or joined.

Example:

Chatter.vent.on('self:join', function(channel) {
  console.log("Joined", channel.get('name'));
});