File List
Not logged in

Files of check-in [d26d71cd86] in directory wiki_references/2019/software/mail_and_messaging/matrix_org/src_from_GitHub/the_repository_clones/node-irc   [history]


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


"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: - - Manifested as BOTS-80 - - Manifested as BOTS-73 - Handle +R - - 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: - 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 encodingFallback option which allows setting encoding to use for non-UTF-8 encoded messages. - 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("", "MyNick", {
      onNickConflict: function() {
        return "_MyNick_";