0.0.8 • Published 4 months ago

tubes_core v0.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

tubes core

correct, extensible & asynchronous IRCing for javascript
correctness coming soon

(work in progress, don't bother using yet)

lil example

// import Connection from `ws`. ws, as the name implies, only lets you connect
// over a websocket (so you can use it in browsers and the like). 
// if you need to connect over TCP, use `tubes_core/tcp` instead.
import { Connection } from "tubes_core/ws";

// create the connection
const conn = new Connection({
    url: "wss://testnet.ergo.chat/webirc",
    nickname: "the_grungler",
    realname: "i'm the grungler",
});

// start connecting
await conn.connect();
// let the network know you're a bot by setting mode +B on your nick
// (if you're writing a client, skip this)
await conn.ima_bot();

// join a channel
const channel = await conn.join_channel("#tubes");
// send a message. you can omit the `await` if you don't care whether the
// message was sent successfully
await channel.privmsg("hello world!");

// gracefully quit the network once all is said and done
await conn.disconnect();

for tcp:

import { Connection } from "tubes_core/tcp";

const conn = new Connection({
    url: "ircs://testnet.ergo.chat",
    nickname: "the_grungler",
    realname: "i'm the grungler",
});

// same as above from there

listening out for messages:

channel.subscribe((msg) => {
    // check if the message is a PRIVMSG (i.e. a normal message sent 
    // to the channel) and if its content is "!ping".
    if (msg.is_privmsg() && msg.content() == "!ping") {
        // respond to the message. this uses the ircv3 replies thing if they're
        // available.
        await msg.reply("pong!");
    }
});

bouncers

tubes has an "adapter" system for connecting to irc bouncers.

soju

import { Adapter } from "tubes_core/soju";

const adp = new Adapter({
    url: "wss://irc.example.org/socket",
});

await adp.activate();

const conn = adp.connections[0]

conn.send("PING hello");

proper documentation coming soon xoxo

0.0.8

4 months ago

0.0.7

4 months ago

0.0.5

4 months ago

0.0.4

4 months ago

0.0.6

4 months ago

0.0.3

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago