====== Botlogmauve ======
Linkmauve nous avait créé de quoi loguer les canaux, et devant nos soucis avec errbot, il a ajouté la fonction pour ramener les flux RSS. Grâce à cela, [[user:pendorid|Pendorid]] est présente sur XMPP.
Téléchargez le bot sur [[https://git.khaganat.net/Numenaute/BotLogMauve| notre dépôt]].
Créer un dossier et un user pour le bot:
sudo useradd -m -d /var/www/pendorid -s /bin/bash -p pendorid pendorid
Il faut installer les modules slixmpp, aiohttp, feedparser. On en profite aussi pour faire un dossier où seront les logs et le fichier du bot :
sudo -u pendorid pip3 install pipenv
sudo -u pendorid mkdir xmpplog
cd xmpplog
sudo -u pendorid python3 -m pipenv install slixmpp aiohttp feedparser
sudo -u pendorid git clone https://git.khaganat.net/khaganat/BotLogMauve.git
cd BotLogMauve
Les dossiers de log se créeront automatiquement ici par la suite (à prendre en compte si vous mettez à jour via git).
Copiez ''bot.cfg.example'' en ''bot.cfg'' et modifiez pour mettre les infos de votre bot.
Lancez le script avec pipenv et vérifier que tout va bien :
sudo -u pendorid python3 -m pipenv run python ./log.py -d
Les options :\\
-d pour les logs de debug\\
-q pour les logs de error
Si ça marche, on créé un service systemd dans ''/etc/systemd/system/pendorid.service''. Adaptez l'utilisateur, le groupe et les chemins.
[Unit]
Description=Chat bot XMPP log
After=network.target network-online.target
[Service]
Type=simple
User=pendorid
Group=pendorid
WorkingDirectory=/var/www/pendorid/xmpplog/BotLogMauve
ExecStart=/usr/bin/python3 -m pipenv run python ./log.py
Restart=always
RuntimeMaxSec=1d
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
Pour activer le service :
sudo systemctl enable pendorid.service
sudo service pendorid start
===== Potentielles résolutions de problème =====
Le paquet ''python-is-python3'' a besoin d'être installé (sur bookworm).
La mise à jour se fait (peut-être, ou pas) avec la commande suivante, dans le dossier du bot (soit ici par défaut : ''/var/www/pendorid/xmpplog/BotLogMauve'') :
sudo -u pendorid python3 -m pipenv update
Si rien ne va, détruire le virtualenv (où le trouver ? je ne suis pas sûre mais les erreurs vous l'indiqueront sans doute) et le recréer avec pipenv.
===== Cahier des charges de la démone =====
Les charges ? Allons direct au verdict : Coupable !
C'est un bot ET une démone. C'est donc assez normal qu'elle aie son caractère. Plus concrètement, qu'est-ce qu'on lui demande ?
TITLE: Présence sur certains salons
PROGRESS: 100%
DESCRIPTION: Suivant les salons, elle a plus ou moins de choses à "faire", cf les autres fonctionnalités.
TITLE: Ramener certains flux rss
PRIORITY: High
PROGRESS: 90%
ASSIGNED: Link Mauve
DESCRIPTION:
* Ramener certains flux rss (parfois plusieurs à surveiller pour un seul salon) : (100%)
* Actuellement elle est parfois très "lente" à aller interroger les flux. Peut-être que ça vient des flux ? Mais ça n'a pas l'air, on a le souci sur les wiki comme le forum
* Personnalisation des messages pour ramener ces flux (parce que juste les liens, c'est triste) (100%)
TITLE: Loguer les conversations.
PROGRESS: 100%
DESCRIPTION: Un fichier de log par jour et par salon.
TITLE: Parler en étant "animée"
PROGRESS: 10%
DESCRIPTION: Ça demanderait à être détaillé. C'est un compte xmpp donc on peut se co avec un second client, mais ça avait tendance à faire buguer les logs etc (je ne sais si c'est encore le cas). L'idéal serait d'avoir un fonctionnement comme [[fr:limnoria#alias|Alias de Limnoria]]. On pourrait discuter de la syntaxe.
Todo :
* Quelle syntaxe utiliser ?
* Comment définir qui a le droit d'utiliser ces commandes ?
TITLE: Dire qu'elle est en vie
PROGRESS: 100%
DESCRIPTION: Quand on dit "Pendorid?", elle répond un truc (marrant, et personnalisé). L'objectif est juste de vérifier qu'elle est bien aussi présente qu'elle le prétends.
TITLE: Donne un chiffre random dans une fourchette
PROGRESS: 0%
DESCRIPTION: Quand on dit "Pendorid: "Pendorid: lance un dX", X étant le nombre maximum, elle va répondre un chiffre random entre 1 et X.
{{tag> Tutoriel Bot Serveur XMPP}}