This repository was archived by the owner on Sep 10, 2024. It is now read-only.
v0.8.0
Breaking changes:
- The
unhandledevent must not be used to catch specific events – userawfor that instead. It should be used to handle explicitly events the bot does not do anything with, such as by notifying the user that such an event has occurred - Errors in the
rawevent no longer throw, but are caught and passed to theerrorevent. As in the documentation, this may still throw if no handler is bound to this event - The
.joinand.partmethods no longer accept space-separated lists of channels; this caused the bot to send invalid commands to the server. Instead, use comma-separated channel lists, and then the callback will be called for each channel as in the documentation EventEmitteris now used directly from the require (i.e.var EventEmitter = require('events'), whereas previouslyvar EventEmitter = require('events').EventEmitter). This fixes a bug with an atom project using the unforked node-irc version (relevant pull request) but may break compatibility with old versions of node (0.x versions, as those are no longer tested against)
New features:
- Add
irc.canConvertEncoding()(aliased toclient.canConvertEncoding()) to test if the library can convert different encodings with the libraries it's located - Add support for
JOIN 0(which, in the IRC spec, parts from all channels) - Handle SASL better: use the IRCv3 spec, and if the server does not support SASL, emit on the
errorevent – fixes part of #38
Fixed bugs:
- Ensure the
debugconfig option causes the client not to output when disabled – fixes #34 - Stop renicking properly when
renickCountis hit. Previously it would renick to a second nickname and then continue the renicking process – fixes #41 - Handle code
378on join – fixes part of #38 - Ensure
client.actionsplits long messages properly (that is, it still wraps long lines in the CTCP action markers) - Ensure the bot disconnects immediately after programmatically calling
activateFloodProtectionnow disconnects immediately like ifopt.floodProtectionis used - Store the data from
rpl_isupportin a way that represents its structure better (objects instead of arrays for key-value pairs, and consistently parse values as integers where applicable) - Emit the lowercase version of the
names#channelevent when#channelis mixed-case - Clean up the automatic reconnection to the server when manually calling
client.disconnect() - Trigger the callback to
joinandparteven if the server channel differs in case from the one passed toclient.joinorclient.part
Misc:
- Add copyright notice to
lib/irc.jsper fork - Update various dependencies (
coveralls,nyc) - Docs: Move the 'character set detection' instructions to their own section of the README
- Docs: Mention the Gitter chat under the 'Further Support' section of the README
- Docs: Add test coverage badge to README
- Docs: Reorder config options and add descriptions for missing items – fixes #33
- Docs: Improve presentation by marking things in inline code tags, instead of italics
- Docs: Clarify that
client.activateFloodProtectionshould only be called once per instance, not once per connection - Docs: Fix typos especially around new inline code blocks
- Tests: Overhaul the whole testing system from
tapetomocha - Tests: Improve the
test.jsirc client REPL - Tests: Add tests for a lot more of the code – this takes our coverage up from 62.614% to 94.334%! (#29)