libquassel
Javascript library to connect and interact with Quassel IRC server.
Install
npm install --production libquassel
Use in browser
You just need to import dist/libquassel.js
in your HTML page.
Development
npm install libquassel
In order to create a browser compatible file, run the following commands
# use browserify to build on change
npm run watch
# before commit, make the dev version + minified version + the doc
npm run build
3.0 breaking changes
Version 3.0
introduces the following breaking changes:
-
message.Type
has been superseded bymessage.Types
, and all its constants are now UPPERCASE -
channel.active
has been superseded bychannel.isActive
-
channel.isChannel()
has been superseded bychannel.isChannel
-
channel.isHighlighted()
has been superseded bychannel.isHighlighted
-
message.isHighlighted()
has been superseded bymessage.isHighlighted
-
message.isSelf()
has been superseded bymessage.isSelf
-
network.getBufferCollection()
andnetwork.getBufferMap()
have been merged intonetworks.buffers
-
networkCollection.findBuffer(...)
andnetworkCollection.get(...)
have been merged intonetwork.getBuffer(...)
- The majority of setter methods has been replaced by direct affectation to the target property
- e.g.
network.setName(name)
as been superseded bynetwork.name = name
- e.g.
- The majority of getter methods has been replaced by direct access to the target property
- e.g.
network.getStatusBuffer()
as been superseded bynetwork.statusBuffer
- e.g.
node specific
-
Client(...).connect
method expects aSocket
or any otherDuplex
as parameter.
browser specific
-
libquassel
is available as a global object. -
Client(...).connect
method expects alibquassel.WebSocketStream
or any otherDuplex
as parameter.
Getting Started
node
const { Client } = require('libquassel');
const net = require('net');
const socket = net.createConnection({
host: "localhost",
port: 4242
});
const quassel = new Client((next) => next("user", "password"));
quassel.on('network.init', (networkId) => {
network = quassel.networks.get(networkId);
// ...
});
// ...
quassel.connect(socket);
browser
<!-- In your HTML -->
<script src="/path/to/libquassel.js"></script>
// libquassel in available as a global in browser
const socket = new libquassel.WebSocketStream('wss://domain.tld:12345', ['binary', 'base64']);
const quassel = new libquassel.Client((next) => next("user", "password"));
quassel.on('network.init', (networkId) => {
network = quassel.networks.get(networkId);
// ...
});
// ...
quassel.connect(socket);
Documentation
Examples
See test folder for examples.
Changelog
3.1.0
- Add support for core highlight rules
3.1.1
- Update dependencies
License
Copyright (c) 2019 Joël Charles Licensed under the MIT license.