« Créer un robot IRC avec NodeJS » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 136 : | Ligne 136 : | ||
|- | |- | ||
|Sysop | |Sysop | ||
|[[Sysop|Sysop.js]] | |[[Sysop|Sysop.js-stable]] | ||
|Janvier 2020 | |Janvier 2020 | ||
|Madx | |Madx | ||
Ligne 142 : | Ligne 142 : | ||
|- | |- | ||
|Uno | |Uno | ||
|Uno.js | |Uno.js-stable | ||
|Avril 2020 | |Avril 2020 | ||
|Madx | |Madx | ||
Ligne 148 : | Ligne 148 : | ||
|- | |- | ||
|Quizz | |Quizz | ||
|Quizz.js | |Quizz.js-stable | ||
|Mars 2018 | |Mars 2018 | ||
|Madx | |Madx | ||
Ligne 154 : | Ligne 154 : | ||
|- | |- | ||
|Sympa | |Sympa | ||
|Quizz-ados.js | |Quizz-ados.js-stable | ||
|Décembre 2019 | |Décembre 2019 | ||
|Madx | |Madx | ||
Ligne 160 : | Ligne 160 : | ||
|- | |- | ||
|tapavu | |tapavu | ||
|[[Tapavu|TapaVu.js]] | |[[Tapavu|TapaVu.js-beta]] | ||
|Janvier 2021 | |Janvier 2021 | ||
|Madx | |Madx |
Version du 22 janvier 2021 à 03:08
La création d'un robot IRC avec Node.JS est simple, il suffit d'avoir un peu de compétence en JavaScript et il sera facile de comprendre petit à petit de comment ça marche.
Ici pas de blablabla, je vais pas écrire un grand article à propos de NodeJS et JavaScript. Le mieux c'est de passer au tuto directement.
Installation de NodeJS
Il suffit de télécharger Node.JS à cette adresse et de l'installer: https://nodejs.org/fr/download/
Il est recommandé de prendre la version LTS pour une meilleur stabilité.
En installant Node.JS, l'application npm sera aussi installée, c'est le gestionnaire de paquets officiel de NodeJS.
Pour la suite de ce tuto, nous allons utiliser l'invite de commande de Windows et on va faire comme si que NodeJS est installé sur Windows.
Création d'un dossier pour ce projet de bot
Sur le bureau, créez un dossier nommée Robot IRC
.
Utilisation du paquet "IRC Framework"
Ouvrez l'invite de commande, et tapez: cd "C:\Users\<nom ordinateur>\Desktop\Robot IRC"
Une fois que vous êtes dans le dossier Robot IRC
, tapez npm install irc-framework
. Un dossier "node_modules" sera visible dans notre dossier "Robot IRC", cela voudra donc dire que le paquet irc-framework
a bien été installé.
Il se peut qu'il y a des erreurs lié à Yarn pendant l'installation, il suffit d'ignorer ces erreurs sur Windows. Yarn c'est le concurrent de Npm, et pour faire ce tuto nous n'avons pas besoin de Yarn.
Création d'un fichier "bot.js" et le lancer
Dans le dossier Robot IRC
, créez un fichier nommé bot.js
.
Pour cela il faut utiliser Bloc-note ou NotePad++ ou encore un éditeur JavaScript.
Il faut faire en sorte que le fichier s'appel bien bot.js
et non pas bot.js.txt
.
Ensuite tout en haut du fichier bot.js, ajoutez ceci :
var IRC = require('./');
A la suite vous pouvez ajouter ceci (et c'est même commenté):
var bot = new IRC.Client(); // le constructeur
// Configuration de la connexion
// Voir la liste complète sur https://github.com/kiwiirc/irc-framework/blob/master/docs/clientapi.md
bot.connect({
host: 'irc.discussionner.com',
nick: 'Bobot'
});
// Événement équivalente au raw 005
bot.on('registered', function() {
console.log('Connected!');
bot.join('#quizz'); // connexion au salon #quizz à la connexion
// var channel = bot.channel('#quizz');
// channel.join();
// channel.say('Hi!');
// channel.updateUsers(function() {
// console.log(channel.users); // liste tous les users présents sur #quizz
// });
});
// Événement close du bot / une connexion impossible
bot.on('close', function() {
console.log('Connection close');
});
// Événement des messages en salons et en privés reçus sur le bot.
bot.on('message', function(event) {
console.log('<' + event.target + '>', event.message);
if (event.message.indexOf('whois') === 0) { // Il suffit de taper /msg Bobot whois <pseudo> et ce if sera enclenché. Il sera même enclenché si le message est tapé en salon : /msg #quizz whois <pseudo>
bot.whois(event.message.split(' ')[1]); // le arg [1] signifie <pseudo>, le robot exécutera un /whois <pseudo>.
}
});
// Événement en salon ou en pv, on tape "!hi" dans le pv du bot ou dans le slaon #quizz et le bot répondra "sup".
// Ce système peut aussi être construit directement dans l'événement 'message'.
bot.matchMessage(/^!hi/, function(event) {
event.reply('sup');
});
// Événement whois // réception de la réponse du whois
bot.on('whois', function(event) {
console.log(event);
});
// Événement join // réception d'un join
bot.on('join', function(event) {
console.log('user joined', event);
});
// Événement userlist // réception des pseudos du salon concerné.
bot.on('userlist', function(event) {
console.log('userlist for', event.channel, event.users);
});
// Événement part // réception d'un part
bot.on('part', function(event) {
console.log('user part', event);
});
Enregistrez le fichier et démarrez votre bot en tapant node bot.js
dans votre terminal (invite de commande). Vous pouvez aussi utiliser node bot
pour le démarrer.
Pour stopper sa connexion, tapez Ctrl + c
.
Voila, c'est tout ce qu'il faut au minimum pour créer un bon petit robot avec Node.JS.
A propos du paquet IRC Framework sur GitHub : https://github.com/kiwiirc/irc-framework (ou sur npmjs : https://www.npmjs.com/package/irc-framework)
Documentations : https://github.com/kiwiirc/irc-framework/tree/master/docs
Le projet IRC-Framework est créé par le groupe KiwiIRC.
Il existe un autre paquet pour créer des robots IRC, c'est npm install irc
que je déconseille d'utiliser, car incomplet et il semble abandonné depuis 2016. Plus d'infos sur https://www.npmjs.com/package/irc.
Depuis 2019, j'ai créé 5 robots NodeJS (avec le paquet ircframework), et ils sont actuellement en ligne sur le serveur IRC Discussionner.com dans différents salons, les noms des robots sont:
Pseudo sur Discuss. | Nom du bot | Date de création | Créateur | Description |
---|---|---|---|---|
Sysop | Sysop.js-stable | Janvier 2020 | Madx | Robot autonome, commandes administrateurs et commandes globops |
Uno | Uno.js-stable | Avril 2020 | Madx | Le jeu du Uno par écrit, il est en ligne sur #uno |
Quizz | Quizz.js-stable | Mars 2018 | Madx | Robot entièrement recopié au Quizz Trivia d'eggdrop, ce bot est en ligne sur le salon #quizz |
Sympa | Quizz-ados.js-stable | Décembre 2019 | Madx | idem, mais cette fois optimisé pour les ados du salon #Ados avec des questions versions collégiens |
tapavu | TapaVu.js-beta | Janvier 2021 | Madx | Robot entièrement recopié au TapaVu de l'eggdrop |
Contactez-moi par mail [email protected] si vous êtes intéressé par l'un de ces robots, en échange d'un bon procédé.