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, Pendorid est présente sur XMPP.
Téléchargez le bot sur 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
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.