orgmode-to-gemini-blog/sources/cipherbliss_blog/lang_fr/20230328T104948__fabriquer-des-bots-pour-mastodon.org

244 lines
7.8 KiB
Org Mode
Raw Normal View History

2024-11-19 13:49:39 +01:00
:PROPERTIES:
:ID: 685fe558-a0c0-45e5-9fd2-bd677315b3f6
:END:
#+title: fabriquer-des-bots-pour-mastodon
#+post_ID: 1688
#+post_slug: fabriquer-des-bots-pour-mastodon
#+post_url: https://www.ciperbliss.com/2023/fabriquer-des-bots-pour-mastodon
#+post_title: Fabriquer des bots pour Mastodon
#+post_tags: mastodon, script, bot, automatisation
#+post_type: post
#+post_mime_types:
#+post_guid: undefined
#+post_status: publish
#+post_date_published: <2023-03-28T10:49:48>
#+post_date_modified: <2023-03-28T10:57:08>
#+post_index_page_roam_id: fa7f2a8c-2b94-4e42-bb4c-25c026ed7ff9
#+retrieved_from_db_at: <2024-11-18 16:25:08>
* Fabriquer des bots pour Mastodon
:PROPERTIES:
:CUSTOM_ID: fabriquer-des-bots-pour-mastodon
:END:
C'est assez simple de faire des bots pour Mastodon, il existe des tas de
bibliothèques pour le faire dans des tas de langages différents.
On peut s'en servir pour accueillir les nouveaux inscrits, stimuler les
découvertes de comptes, mettre en avant certaines thématiques en
particulier, parler d'actualités, se lancer des défis, publier des
images de memes, faire des rapports d'activité, détecter des activités
potentiellement problématiques, et répondre à des questions en se
faisant passer pour une intelligence artificielle.
Avant de se lancer dans l'aventure il faut faire en sorte de respecter
certaines règles pour éviter de juste produire du spam ou de harceler
des comptes.
Certaines entreprises sont spécialisées dans ces activités de spam à des
fins politiques ou de nuisances en tout genre, tel que Cambridge
Analytica et les fermes de trolls.
On peut donc créer des messages de bot très simples pour avoir un flux
d'actu reflétant l'activité sur un jeu de données ouvertes, faire de la
veille, enrichir ses connaissances et apporter de la vie et des échanges
sur son média social. Mais chacune de ces tâches ne demande pas le même
niveau de compétences techniques pour se faire.
Dans votre boîte à outils vous aurez besoin de:
- un carnet de notes pour savoir ce que vous voulez réaliser, et de
faire en sorte que les publications que vous aller engendrer apportent
quelque chose.
- avoir un compte Mastodon qui serve uniquement à cela. L'instance
botsin.space est ouverte à ce type d'utilisation et encourage à y faire
des essais, mais aussi de la mise en production.
- d'enregistrer votre application de bot auprès d'un compte Mastodon.
- de bibliothèques pour aller gratter des données qui vous seront
utiles, dans vos langages de programmation favoris.
- de sources de données utiles. Sites web, textes, images, médias,
documentation d'API.
- de fabriquer des utilitaires codés maison pour faire marcher tout ça
ensemble et détecter les problèmes lors des publications.
- de documenter le tout pour maintenir vos scripts de bots.
- de pas mal de temps pour faire des essais et erreurs.
- de regarder quels services vous proposent de faire des publications
qui pourraient vous intéresser sans avoir à coder vous même.
À propos de complexité:
Simple, basique:
- dire Bonjour, Monde!
- publier quelque chose à heure fixe
- faire un résumé des articles d'un flux rss
Modéré:
- accueillir les nouveaux inscrits depuis 24h avec un message privé
mentionnant leur pseudo.
- publier une image au hasard prise dans un dossier et la déplacer dans
un dossier d'images catégorisées comme publiées
- publier les infos de journées mondiales lors de la dite journée
mondiale
- republier certains posts lors de l'apparition d'un post contenant
certains termes
Complexe:
- faire un jeu dont on est le héros dont l'histoire avance selon un
sondage publié auquel les autres gens participent.
- simuler la publication de quelqu'un d'autre en apprenant comment cette
personne s'exprime
- réagir à une question en faisant une réponse pertinente
- créer un bot sur mesure ayant ses propres cycles de publication
- évaluer les penchants conspirationnistes d'un compte en fonction des
analyses des comptes qu'il suit (analyse-ception)
- analyser les toots publiés et détecter des messages problématiques
pour en faire un rapport aux modérateurs du site
- jouer et gagner à snake and ladders
Quelques exemples dans lesquels vous pouvez puiser de l'inspiration et
copier les sources:
- Ananas en Python :  [[https://pypi.org/project/ananas/][ananas ·
PyPI]]
Ce que j'ai réalisé comme scripts jusqu'ici:
- Republier un article de blog wordpress au hasard parmi une liste de
tous les articles d'un blog, avec son titre et son résumé, avec la
première image trouvée dans le corps de l'article. Beaucoup de
publications passent à la trappe car elles sont captives d'un filtre sur
les sites des GAFAM qui décident à votre place de qui sont les amis
dignes de votre attention. Spoil: ceux qui permettent à la plateforme de
maximiser ses gains. Rien de tout cela sur Mastodon qui est designé de
sorte à ne pas capter entièrement votre attention.
- [[https://mastodon.cipherbliss.com/@meme][Un meme au hasard]] dans un
dossier de sélection, un certain nombre de fois par jour, et sans jamais
republier la même image.
- [[https://mastodon.cipherbliss.com/tags/rtfw][Publier une page
présentant un tag du wiki openstreetmap]] en ne sélectionnant que son
premier paragraphe, parmi les pages en français, et seulement si la page
du wiki est en ligne, avec l'image attitrée du tag prise dans le wiki.
- [[https://mastodon.cipherbliss.com/@afis91][Publier les articles de
l'AFIS]] sortis au cours des 7 derniers jours.
- [[https://mastodon.cipherbliss.com/tags/agenda][Publier les évènements
dédiés à openstreetmap]] qui vont se produire dans les 7 prochains
jours, à partir du flux RSS de l'agenda du libre, localisés uniquement
en île de France.
Chacune de ces publications m'a permis de me constituer quelques
utilitaires bien pratiques.
*** Quelques limites
Les choses trop datées, les informations débunkées, les liens publiés
morts, les sources à gratter qui changent de structure, les scripts qui
plantent sont autant de points d'attention à surveiller lors de la vie
de vos scripts.
** Va chercher!
Un accès à un compte par script permet de publier des choses, mais aussi
de récupérer des informations de ces comptes, et notamment des messages
privées et des notifications.
Ayant à gérer plusieurs comptes, je me suis heurté à l'ergonomie de
Mastodon qui n'est pas faite pour la gestion de multi comptes. Ainsi, le
seul moyen d'avoir une vue d'ensemble des interactions de différents
comptes consistait à faire le tour avec différents logins, à utiliser
une application mobile, ou un proxy en ligne en faisant confiance à je
ne sais qui pour gérer mes accès. Et le logiciel Rambox qui semblait
faire le café n'est pas si pratique. D'ailleurs je n'apprécie pas du
tout qu'il demande maintenant d'avoir un compte pour l'utiliser, alors
qu'il pouvait parfaitement s'en passer l'an dernier.
Je me suis donc lancé dans un petit projet de gestion multi compte qui
permet d'interagir parmi plusieurs comptes dont j'aurai défini les accès
en fichier de configuration.
Actuellement je peux cliquer sur l'avatar de plusieurs comptes pour
changer l'identité qui publiera le message, écrire le message et
l'envoyer.
J'ai aussi la possibilité d'avoir un rapport de tous les messages
directs destinés à ces comptes, afin d'y répondre.
** Y'a pas que pour Mastodon
Développer des choses pour faire des bots c'est bien beau, mais ça vous
permet de réutiliser des données ailleurs et de contribuer au cycle de
vie de la donnée ouverte. C'est un enjeu crucial pour la science
reproductible, pour la cueillette et le jardinage dans OSM et ailleurs,
mais c'est aussi super marrant.
Have fun!
 
[[https://forge.chapril.org/tykayn/multi-account-post-schedule-mastodon]]
[[https://forge.chapril.org/tykayn/scripts]]