Comme de nombreuses personnes, vous en avez marre de rester coincé ou bloqué dans les transports ; surtout à Paris. Pour s'amuser, Micode a créé un système d'information des retards des trains sur Twitter. Pour rigoler, il s'est dit qu'il serait intéressant de savoir combien de temps on pourrait rester bloqué en cumulant tous les retards de la SNCF.
Micode assure n'avoir aucun engagement contre la SNCF sur ce système d'alerte, il l'a juste créé pour s'amuser. Le youtubeur voulait juste vérifier avec les moyens actuels s'il était possible d'indiquer automatiquement et quotidiennement sur Twitter les cumuls de retards des trains de la SNCF.
Grâce à l'API de Twitter, il est possible d'automatiser entièrement un compte : publier des tweets, retweeter... C'est ainsi que fonctionnent la majorité des bots. Pour cela il suffit d'aller dans l'interface de Twitter et de créer une application. Micode a fièrement nommé la sienne SNCF is a joke. Grâce à des tokens (des clés secrètes), il est possible d'obtenir un accès à un programme informatique. Le but étant d'automatiser l'information aux voyageurs quotidiennement.
Avec le plugin TWIT développé par ttezel, il est possible d'automatiser la publication d'informations sur Twitter. Ici Micode souhaite créer un programme informatique qui publie automatiquement sur Twitter les informations qu'il veut : le cumul des trains en retard dans l'exemple. Il rajoute dans ce programme les identifiants secrets récupérés précédemment, afin qu'il puisse publier sur Twitter.
Il faut ensuite aller sur le site des APIs de la SNCF : SNCF Open Data. Le transporteur ferroviaire propose de nombreuses APIs permettant aux programmes informatiques d'obtenir des informations plus ou moins détaillées et actualisées sur la société. Micode utilise l'outil NAVITIA qui gère les APIs de la SNCF pour récupérer les informations sur les retards des trains. L'outil permet de connaitre les retards des trains, les stations ou gares impactées, les délais, le temps... pour une période donnée. Le système donne l'information pour les TER, les intercités, les TGV ; mais pas les transiliens. Dommage car c'est une API différente et c'est là que ce concentre une grande partie du trafic ferroviaire.
Micode rajoute l'API de la SNCF dans son programme et indique une plage horaire de 24h. Il faut également récupérer et calculer l'intégralité des retards de la veille en faisant le cumul pour chaque train impacté. Son système calcule également l'intégralité des trains supprimés quotidiennement.
Une fois que tous les calculs des retards et suppressions de trains sont faits, il ne manque plus qu'à le rendre lisible et interprétable, puis à le publier sur Twitter.
A ce stade le calcul des retards et suppression de trains se fait en local sur l'ordinateur de Micode. Il faut donc mettre en place un système pour le faire en ligne sur internet et l'automatiser quotidiennement au cas où il n'ait pas accès à internet ou son PC. Micode utilise donc un VPS, un serveur privé virtuel. Ce système est hébergé dans une entreprise spécialisée (un datacenter), ce qui permet au programme de s'exécuter seul à intervalle régulier pendant plusieurs mois. Utiliser un VPS est aussi très économique (à partir de 3€) pour les usages à réaliser ici, où il y a une exécution par jour.
Grâce à une tâche automatique, le programme s'exécutera chaque jour à 9h pour ensuite informer les usagers du train des retards cumulés la veille et des suppressions de trains de la SNCF directement sur Twitter. N'hésitez pas à voir le fil twitter SNCF is a joke si cela vous a amusé.