À faire un bot pour Silicium

Les derniers trucs auxquels vous avez joué, les derniers ordinateurs que vous avez bidouillés.

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
cakeisalie5
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 14 juin 2017 14:45
Localisation : Brunoy, France
Contact :

À faire un bot pour Silicium

Message par cakeisalie5 » 05 août 2017 16:06

En ce moment, je m'amuse avec un "nouveau" réseau social nommé Mastodon.
C'est un Twitter décentralisé : il y a plusieurs serveurs, qui appartiennent à des personnes et organisations différentes (j'ai ma propre brique dedans), qui communiquent entre elles pour s'échanger les statuts des utilisateurs dessus. C'est similaire au mail, sauf que comme sur Twitter, les messages sont diffusés à quiconque "suit" la personne ("follow"). Mais ce n'est pas du mail, c'est bien un réseau à part. :)

Parmi tous les serveurs communiquant entre eux et sur lesquels on peut s'inscrire, aussi appelés "instances" (dans d'autres situations, ils auraient aussi pu être appelés "pods" ou "serveurs mail"), il y en a un dont le nom de domaine évoque les anciennes machines : oldbytes.space. Comme il n'y a pas grand monde sur cette instance, je me suis dit que j'allais essayer de faire un bot (robot) annonçant les nouveaux topics pour quelque chose qui soit dans le thème. Silicium, c'est l'endroit évident pour faire ça.

Ça n'a pas été facile de faire ce bot, parce que je n'ai pas trouvé d'API pour Silicium (et ça m'étonnerait qu'il y en ait une). Qu'à cela ne tienne, j'ai donc sorti Python et un module pour bidouiller du HTML (scrape) et tenter d'en extraire le contenu (pas automatiquement, hélas, et ça m'a pris quelques essais pour y parvenir). J'ai cherché à faire le plus économique à la longue pour le forum en lui-même (en évitant de demander tout le contenu à chaque fois), en lisant les mises à jour et en voyant si ça a été mis à jour depuis la dernière fois qu'on a regardé. Cela implique de constituer un cache au premier lancement de l'application, mais il est déjà constitué à l'heure où vous lisez ces lignes.

Le bot lui même c'est silicium@oldbytes.space (attention, les noms d'utilisateur sur Mastodon sont similaires à des adresses mail, mais n'en sont pas !). Son code (en Python 3.x) est sur Github, sous licence GPL3. N'hésitez pas à me crier dessus parce que c'est pas bien, me dire que c'est cool, ou à poser des questions ! :)

PS : J'ai fait une kill switch au cas où ce bot spamme trop le site de requêtes, donc si un admin d'ici veut y avoir accès, il me faut juste une clé SSH publique. Je transmettrai les instructions qui vont avec, mais sachez que ça implique un client SSH capable de transmettre une ligne de commande originale, par exemple ssh user@example.org commande argument0 argument1) ;)
Dernière édition par cakeisalie5 le 05 août 2017 19:45, édité 6 fois.
Auteur et mainteneur du projet P7 pour calculatrices CASIO, dont ma collection est ici. Également sur Mastodon. J'ai réalisé un bot Mastodon pour le forum de Silicum.

Avatar de l’utilisateur
Pocket
Administrateur
Administrateur
Messages : 5140
Inscription : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: À faire un bot pour Silicium

Message par Pocket » 05 août 2017 19:07

Salut,

Si j'ai bien compris ce bot sert à annoncer les nouveaux topics du forum (c'est écrit dessus) par mail à ceux qui s'y sont inscrits, c'est ça ? :oops:

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image

destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1505
Inscription : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Re: À faire un bot pour Silicium

Message par destroyedlolo » 05 août 2017 19:32

Yo,

Il n'y a pas de flux RSS sur le forum ? (je n'ai pas regardé)
Car du coup, ca serait beaucoup plus simple.

A+
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word

Avatar de l’utilisateur
cakeisalie5
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 14 juin 2017 14:45
Localisation : Brunoy, France
Contact :

Re: À faire un bot pour Silicium

Message par cakeisalie5 » 05 août 2017 19:39

Non, c'est pas par mail, c'est sur Mastodon, un réseau à part du mail (c'est ma comparaison qui a dû t'induire en erreur, je vais essayer de réécrire ça mieux). ^^

Et j'ai pas trouvé destroyedlolo, mais peut-être. En tous les cas, j'aurai probablement la flemme de refaire le système actuel x)
Auteur et mainteneur du projet P7 pour calculatrices CASIO, dont ma collection est ici. Également sur Mastodon. J'ai réalisé un bot Mastodon pour le forum de Silicum.

Avatar de l’utilisateur
Pocket
Administrateur
Administrateur
Messages : 5140
Inscription : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: À faire un bot pour Silicium

Message par Pocket » 05 août 2017 21:52

Salut,

Ok, j'ai pigé.
Je confirme, pas de flux RSS, on reste en phpbb de base, sans fioritures.

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6389
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: À faire un bot pour Silicium

Message par gege » 06 août 2017 11:28

Bonjour,
Il y a déjà une page "nouveaux messages" sur Sili il me semble, ne suffit-il pas de la couper en morceaux et hop ?
Réinventer la roue, toussa...
G.E.

Jean-Louis
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 266
Inscription : 14 mai 2010 19:15
Localisation : Lyon

Re: À faire un bot pour Silicium

Message par Jean-Louis » 06 août 2017 12:02

Oui, il existe le raccourci "Sujets actifs"... :|

Pourquoi se compliquer la vie ?... :?

Avatar de l’utilisateur
cakeisalie5
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 14 juin 2017 14:45
Localisation : Brunoy, France
Contact :

Re: À faire un bot pour Silicium

Message par cakeisalie5 » 06 août 2017 12:28

J'avoue ne pas avoir vu cette page. Après, je voulais vraiment annoncer les derniers topics, pas les derniers messages, et l'idée était de rendre ça accessible via un autre moyen que le forum lui-même, et pourquoi pas, d'intéresser les gens qui ne sont pas sur le forum mais qui voient ça passer parce que l'une des personnes qu'ils suivent a partagé une annonce de topic. :)

Aussi, la structure actuelle fait qu'il est possible de la reprendre pour faire carrément une backup de l'extérieur du forum, ou de faire une API qui récupérerait les données (publiques ou pas publiques d'ailleurs, puisqu'il est possible de passer par un compte) et qui, par voie de faits, les rendraient accessibles à divers bots. Mais je ne compte pas aller plus loin, ce qu'il y a là me suffit amplement.

PS : J'avais peur qu'il ne fonctionnait pas, mais si, c'est bon, deux nouveaux messages \o/
Auteur et mainteneur du projet P7 pour calculatrices CASIO, dont ma collection est ici. Également sur Mastodon. J'ai réalisé un bot Mastodon pour le forum de Silicum.

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2426
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: À faire un bot pour Silicium

Message par zpalm » 06 août 2017 13:05

Je n'ai toujours pas compris à quoi sert Twitter, alors Mastodon....

Ceci dit reprendre les posts de Silicium de cette façon ça pose quelques problèmes:
cakeisalie5 a écrit :
06 août 2017 12:28
PS : J'avais peur qu'il ne fonctionnait pas, mais si, c'est bon, deux nouveaux messages \o/
L'un des messages a été posté dans une section réservée aux membres actifs et il se retrouve du coup partagé et accessible à n'importe qui :(

Avatar de l’utilisateur
Fabrice Montupet
Administrateur
Administrateur
Messages : 10422
Inscription : 17 mai 2002 11:39
Localisation : Nevers - France

Re: À faire un bot pour Silicium

Message par Fabrice Montupet » 06 août 2017 13:07

zpalm a écrit :
06 août 2017 13:05
L'un des messages a été posté dans une section réservée aux membres actifs et il se retrouve du coup partagé et accessible à n'importe qui :(
C'est un sérieux problème.

Avatar de l’utilisateur
Pocket
Administrateur
Administrateur
Messages : 5140
Inscription : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: À faire un bot pour Silicium

Message par Pocket » 06 août 2017 14:18

Salut,
cakeisalie5 a écrit :Aussi, la structure actuelle fait qu'il est possible de la reprendre pour faire carrément une backup de l'extérieur du forum, ou de faire une API qui récupérerait les données (publiques ou pas publiques d'ailleurs, puisqu'il est possible de passer par un compte) et qui, par voie de faits, les rendraient accessibles à divers bots. Mais je ne compte pas aller plus loin, ce qu'il y a là me suffit amplement.
Fabrice Montupet a écrit :
zpalm a écrit :L'un des messages a été posté dans une section réservée aux membres actifs et il se retrouve du coup partagé et accessible à n'importe qui :(
C'est un sérieux problème.
Je confirme : seuls les messages publics (c'est à dire ceux qui ne nécessitent pas de compte pour être visibles) sont susceptibles d'être aspirés par ton robot. Les messages qui sont dans des forums non publics, ne doivent en aucun cas en être extraits et rendu publics.

Merci de faire le nécessaire afin que ton robot n'utilise pas de compte pour butiner sur nos forums.

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image

Avatar de l’utilisateur
cakeisalie5
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 14 juin 2017 14:45
Localisation : Brunoy, France
Contact :

Re: À faire un bot pour Silicium

Message par cakeisalie5 » 06 août 2017 14:28

Il n'utilise déjà pas de compte. C'est juste qu'il n'utilise que les index, et en l'occurrence, l'index est disponible sans connexion :

http://silicium.org/forum/viewforum.php?f=24

Si vous le rendez inaccessible sans connexion, il ne devrait plus pouvoir lire et, du coup, ne plus parler de son contenu.
(je supprime le message actuel)

EDIT : Du coup, on fait quoi ? Vous rendez l'index de ce forum privé ? Je hardcode l'ID du forum pour ne pas que mon bot le lise ? On laisse ça comme ça et les topics continueront d'être annoncés sur le bot ? :)
Auteur et mainteneur du projet P7 pour calculatrices CASIO, dont ma collection est ici. Également sur Mastodon. J'ai réalisé un bot Mastodon pour le forum de Silicum.

Avatar de l’utilisateur
Pocket
Administrateur
Administrateur
Messages : 5140
Inscription : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: À faire un bot pour Silicium

Message par Pocket » 06 août 2017 22:15

Salut,
cakeisalie5 a écrit :Il n'utilise déjà pas de compte. C'est juste qu'il n'utilise que les index, et en l'occurrence, l'index est disponible sans connexion :
http://silicium.org/forum/viewforum.php?f=24
Si vous le rendez inaccessible sans connexion, il ne devrait plus pouvoir lire et, du coup, ne plus parler de son contenu.
Oops tu as raison, ces forums sont public et visibles par tout le monde. J'ai confondu avec un autre, qui lui est privé, et donc que ton robot ne voit pas.
cakeisalie5 a écrit :Du coup, on fait quoi ? Vous rendez l'index de ce forum privé ? Je hardcode l'ID du forum pour ne pas que mon bot le lise ? On laisse ça comme ça et les topics continueront d'être annoncés sur le bot ? :)
Du coup, comme c'est public, mon argument initial ne tiens pas ;-)
Mais cela m'ennuie quand même que les deux forums "Donne, Echange, Achète et Vends" soient pris en compte par ton robot (à cause des opportunistes). Si tu peux hardcoder ces deux ID (24 et 62) pour que le robot ne les prennent pas en compte, cela me conviendrais parfaitement. :-)

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image

Avatar de l’utilisateur
cakeisalie5
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 14 juin 2017 14:45
Localisation : Brunoy, France
Contact :

Re: À faire un bot pour Silicium

Message par cakeisalie5 » 07 août 2017 00:10

Modifications publiées, et appliquées en production !

J'en profite pour dire que la codebase existante n'est pas incompatible avec Twitter, ni même avec l'envoi de requêtes à un callback prédéfini pour chaque nouveau topic trouvé, donc si ça tente quelqu'un... :P
Auteur et mainteneur du projet P7 pour calculatrices CASIO, dont ma collection est ici. Également sur Mastodon. J'ai réalisé un bot Mastodon pour le forum de Silicum.

Avatar de l’utilisateur
Pocket
Administrateur
Administrateur
Messages : 5140
Inscription : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: À faire un bot pour Silicium

Message par Pocket » 07 août 2017 08:58

Salut,

Impec, merci.

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image

Répondre

Revenir vers « A quoi t'as joué hier ? »