Go to file
2023-04-23 18:00:44 +02:00
src slack: dirty fix 2023-04-23 18:00:44 +02:00
.gitignore remove getLevel 2018-09-07 20:03:32 +02:00
LICENSE Create LICENSE 2019-11-25 02:04:45 +01:00
package.json inline_query 2023-04-23 17:55:53 +02:00
README.md documentation 2019-11-25 04:05:24 +01:00

cuffeo (wip)

Usage Example

import cuffeo from "cuffeo";

(async () => {
  const clients = [
    {
      type: "irc",
      enabled: true,
      network: "name",
      host: "localhost",
      port: 6697,
      ssl: true,
      selfSigned: false,
      sasl: false,
      nickname: "nickname",
      username: "username",
      password: "password",
      realname: "realname",
      channels: [
        "#blah"
      ]
    },
    {
      type: "tg",
      enabled: true,
      token: "token",
      pollrate: 1001
    },
    {
      type: "slack",
      enabled: true,
      token: "token"
    }
  ];

  const bot = await new cuffeo(clients);

  // events
  bot.on("message", msg => {
    msg.reply("hello, world!");
  });

  bot.on("info", msg => {
    console.log(msg);
  });

  bot.on("error", err => {
    console.error(err);
  });

  bot.on("ctcp:ping", msg => { // irc only
    msg.write(`notice ${msg.user.nick} :${e.message}`);
  });

  bot.on("ctcp:version", msg => { // irc only
    msg.write(`notice ${msg.user.nick} :\u0001VERSION blah\u00001`);
  });
})();

documentation

clients

irc

{
  "type": "irc",
  "enabled": true,
  "network": "name",
  "host": "localhost",
  "port": 6697,
  "ssl": true,
  "selfSigned": false,
  "sasl": false,
  "nickname": "nickname",
  "username": "username",
  "password": "password",
  "realname": "realname",
  "channels": [
    "#blah"
  ]
}

Telegram

{
  "type": "tg",
  "enabled": true,
  "token": "token",
  "pollrate": 1001
}

Slack

{
  "type": "slack",
  "enabled": true,
  "token": "token"
}

Events

message

returns an object, containing:

variable type explanation note
type string irc, tg or slack
network string irc only, other it'll be "telegram" or "slack"
channel string
user object see below
message string
time string timestamp
raw object
reply function
replyAction function
replyNotice function
self object
_chan object irc only
_user object irc and telegram only
join function join a channel irc only
part function part a channel irc only
whois function request a whois irc only
write function write raw lul

user object
variable type
account string
prefix string
reply/replyAction/replyNotice function
msg.reply("message");
msg.replyAction("message");
msg.replyNotice("message"); // same as reply() on Slack and Telegram
join function
msg.join("#channel");
part function
msg.part("#channel", "message");
// or
msg.part([ "#channel1", "#channel2" ], "message");
whois function
msg.whois("user");
// or
msg.whois([ "user1", "user2" ]);

color your messages

msg.reply("[color=red]message[/color]");

allowed colors:

  • white
  • black
  • navy
  • green
  • red
  • brown
  • purple
  • orange
  • yellow
  • lightgreen
  • teal
  • cyan
  • blue
  • magenta
  • gray
  • lightgray

bold and italic

msg.reply("[b]bold[/b]");
msg.reply("[i]italic[/i]");