Vytvářejte IRC roboty pomocí Node.js

Jedním z úkolů na mém WebDev bucket listu bylo vždy vytvořit funkčního IRC bota. Nemám ponětí, proč to bylo na mém seznamu vysoko, ale... prostě ano. IRC boti se používají k různým věcem: Vyhledávání Google, zjišťování klíčových slov a získávání informací (tj. zpráva s číslem chyby v IRC Mozilly načte název a odkaz dané chyby) a další. Nedávno jsem našel knihovnu Node.js, která mi umožnila poslouchat běžné události IRC a reagovat na ně; ještě lépe, je to neuvěřitelně snadné. Dovolte mi, abych vám ukázal, jak vytvořit vlastního IRC bota pomocí JavaScriptu!

Instalace IRC uzlu

K instalaci knihovny IRC použijte npm:

npm install irc

Toto je jediná externí knihovna, kterou budete potřebovat!

Konfigurace a načítání robotů

Nastavení konfiguračního objektu se doporučuje, protože mnoho nastavení může být sdíleno v rámci posluchačů událostí robota:

// Create the configuration
var config = {
	channels: ["#davidwalshblog", "#mootools"],
	server: "irc.freenode.net",
	botName: "walshbot"
};

Pak vyžádejte knihovnu IRC a vytvořte si robota:

// Get the lib
var irc = require("irc");

// Create the bot name
var bot = new irc.Client(config.server, config.botName, {
	channels: config.channels
});

Nyní je nastavení dokončeno; čas, aby se věci staly!

Posluchače a odpovědi robotů

Jakmile je konfigurace vytvořena, knihovna je k dispozici a bot byl vytvořen, možnosti jsou nekonečné. Většina interakcí začíná posluchačem události a základní odpovědí:

// Listen for joins
bot.addListener("join", function(channel, who) {
	// Welcome them in!
	bot.say(channel, who + "...dude...welcome back!");
});

Kdykoli uživatel vstoupí do místnosti, bude uvítán výše uvedenou odpovědí. Pokud si chci poslechnout každou zprávu a podle toho reagovat, mohl bych přidat:

// Listen for any message, PM said user when he posts
bot.addListener("message", function(from, to, text, message) {
	bot.say(from, "¿Que?");
});

// Listen for any message, say to him/her in the room
bot.addListener("message", function(from, to, text, message) {
	bot.say(config.channels[0], "¿Public que?");
});

Existuje mnoho dalších událostí k poslechu; IRC API je poměrně rozsáhlé. V případě robota s chybami Mozilly, o kterém jsem se zmínil výše, by bylo potřeba jednoduše analyzovat zprávu na 6místné číslo, aby se spustilo vyhledávání podrobností o chybě, a poté odeslat zprávu s odpovědí, když byly získány požadované informace. S těmito posluchači událostí můžete použít jakoukoli jinou knihovnu Node.js nebo vlastní kód k provedení jakékoli funkce, kterou chcete.

Spuštění robota

Spuštění robota je také jednoduché – jednoduše otevřete nový shell a spusťte:

node bot.js

Díky této úžasné NodeJS IRC knihovně a jejímu neuvěřitelně snadno použitelnému API mohu odškrtnout vytvoření IRC bota z mého seznamu WebDev bucket list. Ještě lépe, musím vytvořit bota pomocí JavaScriptu. Pokud chcete vytvořit užitečného robota, nebo prostě někoho, kdo bude otravovat lidi, vyzkoušejte knihovnu IRC!