Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

502 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License

This is a fork of node-irc, which is an IRC client library written in JavaScript for Node. This fork is used by the Matrix-IRC application service.

To use this fork:

  npm install matrix-org/node-irc

Alternatively:

"dependencies": {
  "irc": "matrix-org/node-irc#commithash"
}

You can access more detailed documentation for this module at Read the Docs

Differences from node-irc

The node-irc library isn't well maintained and there are a number of issues which are impacting development of the Matrix-IRC application service. We made the decision to fork the project in order to improve reliability of the application service. A summary of modifications from node-irc@0.3.12 are below:

  • matrix-org#1 - Manifested as BOTS-80

  • matrix-org#4 - Manifested as [BOTS-73] (https://matrix.org/jira/browse/BOTS-73)

  • Handle +R - https://github.com/matrix-org/node-irc/commit/7c16b994b12145b6da8961790bcfa808fb7fcba9

  • Handle more error codes (430,435,438)

  • Fix bug which would fail to connect conflicting nicks which == NICKLEN.

  • Fix err_unavailresource on connection with reserved nicks.

  • Workaround for the Scunthorpe problem: matrix-org/matrix-appservice-irc#103

  • Add methods for working out if a given text will be split and into how many lines.

  • Add names support (incl. multi-prefix).

  • Add functions to determine if a user prefix is more powerful than another (e.g. @ > &)

  • Case-map all incoming channels correctly (e.g on PRIVMSG and NOTICE)

  • Allow IP family to be chosen to allow IPv6 connections.

  • Add function for getting channel modes.

  • Workaround terrible RFC3484 rules which means that IPv6 DNS rotations would not be honoured.

  • Add setUserMode to set a user's mode.

  • Addition of onNickConflict() option which is called on err_nicknameinuse. This function should return the next nick to try. The function defaults to suffixing monotonically increasing integers. Usage:

    new Client("server.com", "MyNick", {
       onNickConflict: function() {
         return "_MyNick_";
       }
    });

About

NodeJS IRC client library

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages