244 lines
7.8 KiB
Org Mode
244 lines
7.8 KiB
Org Mode
|
|
|||
|
: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]]
|
|||
|
|
|||
|
|