Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:limnoria [2015/12/16 21:57] zatalyzfr:limnoria [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 2: Ligne 2:
 Limnoria est un logiciel de bot IRC, comme [[fr:eggdrop|Eggdrop]]. C'est la reprise de Supybot ; les deux partagent donc la même documentation, mais Limnoria est la version actuellement maintenue à jour. Limnoria est un logiciel de bot IRC, comme [[fr:eggdrop|Eggdrop]]. C'est la reprise de Supybot ; les deux partagent donc la même documentation, mais Limnoria est la version actuellement maintenue à jour.
  
 +On peut utiliser des "bots" sur [[fr:irc|IRC]] pour diverses utilisations. Nous avons sur le canal #khanat un bot qui enregistre les conversations, ramène les dernières infos de certains flux RSS et est parfois animé de sa propre vie : [[fr:irc#pendorid|Pendorid]]. Ce bot est mis en place grâce au logiciel [[https://github.com/ProgVal/Limnoria|Limnoria]]. 
 +
 +Cet article détaille comment gérer un bot avec Limnoria. Il vaut mieux installer Limnoria sur un serveur afin que le bot soit toujours présent ensuite.
 +
 +<WRAP center round important 60%>
 +Ne mettez pas un bot sur un canal IRC sans l'accord des propriétaire, c'est assez mal vu !
 +</WRAP>
 ===== Installation ===== ===== Installation =====
 Installer les paquets python nécessaires : Installer les paquets python nécessaires :
Ligne 49: Ligne 56:
 En daemon : En daemon :
   supybot --daemon bot.conf   supybot --daemon bot.conf
-  + 
 +==== Lancer automatiquement les bots via cron ==== 
 +Créer un fichier pid du nom du bot dans le dossier ''config''
 +  touch bot.pid 
 + 
 +Ajouter une ligne de ce genre dans cron (via ''crontab -e'') : 
 +<code>*/10 * * * * /home/user/.local/bin/supybot-botchk --supybot=/home/user/.local/bin/supybot --botdir=/home/user/supybot/config/ --pidfile=/home/user/supybot/config/bot.pid --conffile=/home/user/supybot/config/bot.conf</code> 
 + 
 +''*/10'' indique que la commande sera lancée toutes les 10 minutes.
 ===== Liens et ressources ===== ===== Liens et ressources =====
   * Doc en anglais, de limnoria : http://doc.supybot.aperio.fr/en/latest/use/   * Doc en anglais, de limnoria : http://doc.supybot.aperio.fr/en/latest/use/
   * Doc en français, peut-être moins à jour : https://fr.supybot.aperio.fr/   * Doc en français, peut-être moins à jour : https://fr.supybot.aperio.fr/
   * Channel irc en français, sur freenode : #supybot-fr   * Channel irc en français, sur freenode : #supybot-fr
 +
 +La doc est assez complète sur ces différentes ressources, ainsi que les tutos pour la prise en main basique du bot. 
 +
 +===== Pense-bête =====
 +Ce qui suit est un résumé des principales commandes et actions ; mieux vaut lire la doc officielle auparavant.
 +
 +
 +Pour lister les commandes des plugins :
 +
 +  config list supybot.plugins.NomDuPlugin
 +  config list supybot.plugins.NomDuPlugin.Dossier1
 +
 +Pour avoir des informations sur les options des plugins :
 +  config help supybot.plugins.NomDuPlugin.Dossier1.option1
 +
 +S'il y a un arobase (@) devant ce qui est listé par la première commande, il faut répéter ''list'' avec le paramètre en arobase. Sinon, il faut utiliser ''help''
 +
 +<code><Zatalyz> config list supybot.plugins.RSS
 +-pendorid- #announce, #announceFormat, #defaultNumberOfHeadlines, #format, #headlineSeparator, #initialAnnounceHeadlines, #keywordBlacklist, #keywordWhitelist, #notice, @feeds, public, sortFeedItems, and waitPeriod
 +<Zatalyz> config list supybot.plugins.RSS.feeds
 +-pendorid- @blog, @forum, @mediateki, @taf, @um1, and @wikhan
 +<Zatalyz> config help supybot.plugins.RSS.announce
 +-pendorid- Determines which RSS feeds should be announced in the channel; valid input is a list of strings (either registered RSS feeds or RSS feed URLs) separated by spaces.  (Current value:  )
 +</code>
 +==== Plugin en anglais ====
 +Il se peut que le bot parle en anglais, alors qu'on avait bien configuré le français en langue principale. Dans ce cas, s'assurer que c'est bien le français qui est la langue de base, puis décharger et recharger le plugin (via le chat, en causant direct au bot) :
 +  config language fr
 +  unload Games
 +  load Games
 +
 +==== Alias ====
 +La commande [[https://fr.supybot.aperio.fr/Supybook#Alias|Alias]] permet de créer des commandes personnalisées pour le bot, ce qui est tout simplement génial.
 +
 +Bien que les développeurs conseillent à présent d'utiliser le plugin Aka (mêmes fonctionnalités), mon expérience personnelle me fait préférer Alias, qui se contente de marcher... 
 +
 +Alias utiles :
 +^ Commande ^ Résultat ^
 +| alias add !me do #canal $1 | Lorsqu'on écrira ''!me blabla'' au bot, il dira "bot blabla" sur le #canal. |
 +
 +==== RSS ====
 +
 +Ajouter les divers flux propres à Khaganat :
 +<code>rss add forum https://khaganat.net/forum/index.php?action=.xml;type=rss
 +rss add mediateki https://khaganat.net/mediateki/feed.php
 +rss add taf https://khaganat.net/taf/feed.php
 +rss add wikhan https://khaganat.net/wikhan/feed.php
 +rss add um1 https://khaganat.net/um1/feed.php
 +rss add blog https://khaganat.net/blog/feed.php
 +rss add GitKhaganat https://git.khaganat.net/dashboard/projects.atom
 +</code>
 +
 +
 +Enlever les divers flux
 +<code>rss remove forum
 +rss remove mediateki
 +rss remove taf
 +rss remove wikhan
 +rss remove um1
 +rss remove blog
 +rss remove GitKhaganat
 +</code>
 +
 +Modifier le nombre de lignes à afficher lors des mises à jour des flux :
 +  config supybot.plugins.rss.initialAnnounceHeadlines 1
 +
 +Ajouter les annonces sur le canal lorsqu'il y a du nouveau :
 +  rss announce add #khanat forum blog um1 taf mediateki wikhan
 +  rss announce add #krypte GitKhaganat
 + 
 +Lister les flux sur un canal :
 +  rss announce list #khanat
 +
 +
 +==== S'identifier et faire des bêtises ====
 +
 +^ Effet ^ Commande ^ Exemple de commande ^
 +| S'enregistrer auprès d'un bot, afin de lui faire faire certaines commandes | user register <nom> <mot-de-passe> | user register Dupont branaz |
 +| Changer le mot de passe | user set password <utilisateur> <ancien mot de passe> <nouveau mot de passe> | user set password Dupont branaz pendo |
 +| S'identifier auprès du bot pour pouvoir utiliser plus de commandes | identify <pseudo> <mot-de-passe> | identify Dupont branaz |
 +|Savoir si on est enregistré et qui on est | whoami | whoami |
 +
 +Renommer le bot en direct (une fois identifié) :
 +  admin nick <nouveaupseudo> 
 +
 +Le bot prend aussi des commandes classiques d'irc, comme ''part'', ''join''
 +^ Effet ^ Commande ^ Exemple de commande ^
 +| Rejoindre un canal | join <nom du canal> | join #khanat |
 +| Quitter un canal | part <nom du canal> | part #khanat |
 +
 +Pour en savoir plus sur une commande, demandez ''help'' au bot.
 +==== Réinitialiser son mot de passe admin ====
 +Si vous êtes owner et que vous avez changé votre mot de passe puis oublié ce dernier, ça va être un peu compliqué de reprendre les droits sur votre bot.
 +
 +Première chose : regardez dans vos logs IRC en local si vous retrouvez la discussion avec le bot où vous avez changé de mot de passe, parce que ce sera écrit en clair dans vos propres logs. Si vous utilisez plusieurs appareils pour vous connecter à IRC, regardez les logs sur chacun de ces appareils.
 +
 +Si cela ne suffit pas :
 +  * Éteignez le bot. Si vous avez paramétré un cron pour le relancer, désactivez-le, le temps de faire ces manipulations.
 +  * Virez le dossier ''config/backup'', ainsi que le fichier ''config/conf/users.conf'' (un petit ''mv ~/botbak/'' pour éviter de perdre des choses utiles en cas de fausses manipulations).
 +  * En ligne de commande, lancez ''supybot-adduser -c owner VotrePseudo''. Cela va recréer votre utilisateur. 
 +  * Cet utilisateur va être dans un fichier du type ''config/VotrePseudo'', copiez le texte dedans dans le fichier ''config/conf/users.conf''.
 +  * Rallumez le bot et remettez le cron en place si nécessaire.
 +  * Connectez-vous.
 +
 +Le point délicat est que le bot garde des choses en cache (probablement dans ''config/backup'', ou alors c'était un coup de chance), ce qui demande de l'éteindre et de faire du ménage. 
 +
 +===== Scripts utiles =====
 +==== Ranger les logs ====
 +Limnoria trie les logs par canal, mais au bout de quelque mois, c'est assez plein. Voici un script qui va ranger ces logs dans des dossiers suivant le canal, l'année et le mois, qui peut être lancé tous les jours.
 +
 +<file bash archiverlog.sh>#!/bin/bash
 +
 +# Variable pour l'endroit où sont stockés les fichiers. Ne pas mettre de / à la fin de la chaine !
 +dirlog=/home/khaganat/supybot/config/logs/ChannelLogger/freenode
 +dirarch=/home/khaganat/archivelog/freenode
 +
 +# On liste les divers canaux logués 
 +liste="khanat ryzomforge ryzomdev ryzomatys ryzomsupport ryzomgraphic ryzomlinux ryzommac krypte"
 +for chan in $liste; do
 + # On vérifie que ça existe  ( -d pour dossier)
 + if [ -d $dirlog/\#$chan ]; then
 + #d'abord on va dans chacun des dossiers de log de channel
 + cd $dirlog/\#$chan/
 + # puis on récupère le nom des logs en variable 
 + # On récupère la date, en formattant comme pour les logs
 + for f in *.log
 + do
 +   year=${f: -14:4}
 +   month=${f: -9:2}
 +   day=${f: -6:2}
 + # On se fait une jolie variable qui imite la partie datée du nom des fichiers de log
 + log=$year-$month-$day
 +
 +
 + # On vérifie que les fichiers de log existent ( -e pour existe)
 + if [ -e $dirlog/#$chan/#$chan.$log.log ]; then
 +
 + # on créé le dossier de chaque mois dans les archives s'il n'existe pas
 + mkdir -p "$dirarch/$chan/$year/$month/"
 + # on déplace ces logs dans leur archive, à condition qu'ils soit plus âgés que 7 jours.
 + find $dirlog/#$chan/#$chan.$log.log -type f -mtime +7 -exec /bin/mv {} $dirarch/$chan/$year/$month/$chan.$log.log \;
 +
 + fi
 + done
 + fi
 +done
 +
 +
 +</file>
 +
 +==== Voir le log du jour en direct ====
 +<WRAP center round todo 60%>
 +À venir, grâce au script de Nuts.
 +</WRAP>
 +
 +==== Laisser quelques archives accessibles ====
 +Comme on peut le voir sur la page [[kh>irc/log.php]], il est possible de présenter joliment les logs aux visiteurs et aux absents. 
 +
 +<WRAP center round todo 60%>
 +Doc en cours, vu que je remanie la façon de faire.
 +</WRAP>
 +
  
 {{tag>Tutoriel Bot Serveur IRC }} {{tag>Tutoriel Bot Serveur IRC }}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/limnoria.1450299478.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact