: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]]