Sur Mastodon, quelques personnes ont une pratique bien étrange mais parfois drôle depuis les derniers mois : avoir un petit bot personnel qui lit vos toots, les parse, les réecrit et les reposte.

Nous allons donc apprendre comment faire ceci, tout en écrivant le moins de ligne de code possible !

Pour les 2 du fond qui ne savent pas ce qu’est Mastodon, c’est une très sympathique alternative libre à Twitter. Allez donc jeter un oeil et nous rejoindre pour shitposter à longueur de journée.


1. Création du compte

Revenons donc à nos moutons et apprenons à setup ce petit bot très fun.

Tout d’abord, créez-vous un compte pour votre bot. Afin d’éviter des problèmes avec votre administrateur d’instance, je vous recommande de le faire sur une instance spécifiquement créee pour héberger des bots (botsin.space est la plus connue d’entre elle, et j’y héberge mon bot @Elebot).

Une fois le compte crée, marquez le comme étant un bot dans les préférences du comptes (Settings->Edit Profile) et faites le suivre exclusivement votre compte mastodon à traiter.


2. Script time

Sur votre serveur / raspberry pi / ordinateur personnel (en fonction de l’équipement que vous avez sous la main, j’ai tout placé sur mon serveur dédié de mon coté), créez un dossier spécifique pour stocker les fichiers générés par votre bot. Nous appelerons ce dossier par la suite bot_masto.

Chargez et placez dans ce dossier les scripts login.py et mastodon-ebooks.py.

Allez à la racine de votre dossier bot_masto (a l’aide d’un cd bot_masto) puis executez login.py: python3 login.py. Rentrez les informations de login de votre bot (et placez ce que vous voulez en app name). Ce script s’occupera de générer les informations de login pour le script principal.

Éxecutez ensuite le script principal : python3 mastodon-ebooks.py -s. Il s’occupera ici de charger vos toots pour pouvoir générer les suivants sans devoir a nouveau recharger tout vos précédents toots sur votre compte.

Pour vérifier si tout fonctionne bien, tapez python3 mastodon-ebooks.py -p. Vous devriez voir apparaitre un texte géneré de vos toots dans votre terminal.

Afin de faire parler votre bot sur Mastodon, faites python3 mastodon-ebooks.py -t.

Note : Il se pourrait que vous ne possédiez pas les librairies nécessaires pour faire fonctionner les scripts. Afin de les installer, faites pip3 install --user lib en remplaçant lib par la library souhaitée (par exemple Mastodon.py ou markovify).


3. Automatisation

Bon c’est bien beau tout ça, mais votre bot pour l’instant ne toot que lorsque l’on lui demande avec la commande donnée au dessus. Nous allons donc faire en sorte que tout ceci soit automatique et pour cela, utiliser cron/crontab.

Cron c’est pratique et facile : selon un format donné, le systeme lancera automatiquement toutes les x minutes/heures… la commande donné.

Nous allons tout d’abord créer 2 scripts, que nous allons aussi placer dans notre dossier bot_masto :

toot.sh:

 #!/bin/sh
 cd /chemin/vers/bot_masto/
 python3 mastodon-ebooks.py -s
 python3 mastodon-ebooks.py -t

reply.sh:

 #!/bin/sh
 cd /chemin/vers/bot_masto/
 python3 mastodon-ebooks.py -c

Puis, nous allons taper dans le terminal crontab -e pour choisir notre fréquence d’utilisation de ces scripts. J’ai mis les lignes suivantes dans mon cas :

30 * * * * /chemin/vers/bot_masto/toot.sh
* * * * * /chemin/vers/bot_masto/reply.sh

Le format d’une ligne crontab est la suivante:

minute heure jour_du_mois mois jour_de_la_semaine commande

Dans mon cas, mon bot postera un nouveau toot toutes les heures (à xh30), et vérifiera toutes les minutes s’il a des nouvelles notifications et y répondra le cas échéant.

Si vous voulez changer la fréquence d’utilisation des scripts (vérifier les notifications toutes les 5 minutes, tooter toutes les 2h, etc …) je vous recommande le site crontab.guru qui traduira vos indications en langue humaine.

Et voila, vous pouvez fermer votre éditeur de texte, et regarder votre petit bot peu à peu spammer votre timeline.