Aller au contenu

« Créer un robot IRC avec NodeJS » : différence entre les versions

aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 19 : Ligne 19 :


==Création d'un dossier pour ce projet de bot ==
==Création d'un dossier pour ce projet de bot ==
Sur le bureau, créez un dossier nommé <code>Robot IRC</code>.
Sur le bureau, créez un dossier en le nommant <code>Robot IRC</code>.


===Utilisation du paquet "IRC Framework"===
===Utilisation du paquet "IRC Framework"===
Ligne 33 : Ligne 33 :
Dans le dossier <code>Robot IRC</code>, créez un fichier nommé <code>bot.js</code>.
Dans le dossier <code>Robot IRC</code>, créez un fichier nommé <code>bot.js</code>.


Pour cela il faut utiliser Bloc-note ou NotePad++ ou encore un éditeur JavaScript.
Pour cela il faut utiliser Bloc-note ou NotePad++ ou un éditeur JavaScript.


Il faut faire en sorte que le fichier s'appel bien <code>bot.js</code> et non pas <code>bot.js.txt</code>.
Il faut faire en sorte que le fichier s'appelle bien <code>bot.js</code> et non pas <code>bot.js.txt</code>.


Ensuite tout en haut du fichier bot.js, ajoutez ceci :  
Ensuite tout en haut du fichier bot.js, ajoutez ceci :  
Ligne 42 : Ligne 42 :
</source>
</source>


A la suite vous pouvez ajouter ceci (et c'est même commenté):  
Vous pouvez ajouter ceci juste en dessous (et c'est même commenté):  


<source lang="javascript">
<source lang="javascript">
const bot = new IRC.Client(); // le constructeur
const bot = new IRC.Client(); // Constructeur.


// Configuration de la connexion
// Configuration de la connexion
Ligne 54 : Ligne 54 :
});
});


// Événement équivalente au raw 005
// Événement équivalent au raw 001
bot.on('registered', function() {
bot.on('registered', function() {
     console.log('Connected!');
     console.log('Connected!');
     bot.join('#quizz'); // connexion au salon #quizz à la connexion
     bot.join('#quizz'); // Joindre le salon #quizz à partir du raw 001.
     // var channel = bot.channel('#quizz');
     // var channel = bot.channel('#quizz');
     // channel.join();
     // channel.join();
Ligne 66 : Ligne 66 :
});
});


// Événement close du bot / une connexion impossible  
// Pour le raw 005, il faudra voir du côté de celui-ci :
/*
let raw005 = false;
bot.on('server options', function(event) {
if (!raw005) {
raw005=true;
bot.join('#quizz'); // Joindre le salon #quizz à partir du raw 005
}
});
*/
 
// Événement déconnexion du bot; bug ou connexion impossible.
bot.on('close', function() {
bot.on('close', function() {
     console.log('Connection close');
     console.log('Connection close');
Ligne 79 : Ligne 90 :
});
});


// É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".
// Événement en salon ou en pv, on tape "!hi" dans le pv du bot ou dans le salon #quizz et le bot répondra "sup".
// Ce système peut aussi être construit directement dans l'événement 'message'.
// Ce système peut aussi être construit directement dans l'événement 'message'.
bot.matchMessage(/^!hi/, function(event) {
bot.matchMessage(/^!hi/, function(event) {
Ligne 85 : Ligne 96 :
});
});


// Événement whois & réception de la réponse du whois
// Événement whois; réception de la réponse du whois.
bot.on('whois', function(event) {
bot.on('whois', function(event) {
     console.log(event);
     console.log(event);
});
});


// Événement join & réception des joins
// Événement join; réception des joins.
bot.on('join', function(event) {
bot.on('join', function(event) {
     console.log('user joined', event);
     console.log('user joined', event);
});
});


// Événement userlist & réception des pseudos du salon concerné.
// Événement userlist..
bot.on('userlist', function(event) {
bot.on('userlist', function(event) {
     console.log('userlist for', event.channel, event.users);
     console.log('userlist for', event.channel, event.users);
});
});


// Événement part & réception d'un part
// Événement part.
bot.on('part', function(event) {
bot.on('part', function(event) {
     console.log('user part', event);
     console.log('user part', event);
Ligne 108 : Ligne 119 :
Enregistrez le fichier et démarrez votre bot en tapant <code>node bot.js</code> dans votre terminal (invite de commande). Vous pouvez aussi utiliser <code>node bot</code> pour le démarrer.
Enregistrez le fichier et démarrez votre bot en tapant <code>node bot.js</code> dans votre terminal (invite de commande). Vous pouvez aussi utiliser <code>node bot</code> pour le démarrer.


Pour stopper sa connexion, tapez <code>Ctrl + c</code>.
Pour stopper sa connexion, tapez <code>CTRL</code> + <code>C</code>.




Voila, c'est tout ce qu'il faut au minimum pour créer un bon petit robot avec Node.js.
Voila, c'est tout ce qu'il faut au minimum pour créer un petit robot IRC avec Node.js.




Ligne 120 : Ligne 131 :
Documentations <strong>IRC Framework</strong> : https://github.com/kiwiirc/irc-framework/tree/master/docs
Documentations <strong>IRC Framework</strong> : https://github.com/kiwiirc/irc-framework/tree/master/docs


Le projet IRC-Framework est créé par le groupe KiwiIRC, il est parfait pour créer des robots IRC et des clients IRC (comme celui qu'il y a sur https://discussionner.com).
Le projet <strong>IRC-Framework</strong> est créé par le groupe KiwiIRC, il est parfait pour créer des robots IRC et des clients IRC, comme celui qu'il y a sur https://discussionner.com.




Il existe un autre paquet pour créer des robots IRC, c'est <code>npm install irc</code> (https://www.npmjs.com/package/irc) que je déconseille d'utiliser, car incomplet et il semble abandonné depuis 2016.
Il existe un autre paquet pour créer un robot IRC, c'est <code>npm install irc</code> (https://www.npmjs.com/package/irc) que je déconseille d'utiliser, car incomplet et il semble abandonné depuis 2016.




Ligne 129 : Ligne 140 :




Depuis 2019, j'ai créé 5 robots NodeJS (avec le paquet irc-framework), et ils sont actuellement en ligne sur le <strong>serveur IRC Discussionner.com</strong> dans différents salons, les noms des robots sont:  
Depuis 2019, j'ai créé 5 robots Node.js (avec le paquet irc-framework), et ils sont actuellement en ligne sur le <strong>tchat IRC Discussionner.com</strong> dans différents salons, les noms des robots sont:  
{| class="wikitable"
{| class="wikitable"
|-
|-
Ligne 160 : Ligne 171 :
|Décembre 2019
|Décembre 2019
|Madrix
|Madrix
|idem, mais cette fois optimisé pour les ados du salon #Ados avec des questions versions collégiens. Exam est présent sur #15-25ans.
|idem, mais cette fois optimisé pour les ados du salon #Ados avec des questions versions collégiens. Exam est présent sur #16-25ans. Exam est aussi présent sur EuropNet dans le salon #mimacy.
|-
|-
|tapavu
|tapavu