- Après avoir participé à la course cycliste Gravel Worlds Long Voyage, l’auteur de l’article a décidé d’optimiser son ravitaillement en commandant une pizza chez Casey's General Store
- L’année précédente, les coureurs les plus rapides avaient mangé toutes les pizzas, si bien qu’il n’en restait plus à son arrivée
- Pour résoudre ce problème, il a décidé d’écrire un script qui commande une pizza lorsque le GPS du vélo sort d’une géofence
- Ce script a été construit sur le tracker GPS serverless qu’il avait créé l’année précédente
- Le script calcule l’ETA jusqu’au prochain point d’arrêt et, lorsque le tracker sort d’une géofence configurée dans le service AWS Location, déclenche une fonction Lambda qui commande la pizza
- Comme Casey's ne dispose pas d’API publique pour les commandes en ligne, il s’appuie sur du screen scraping du site web avec Playwright
- Il a configuré l’envoi d’une notification push sur son téléphone selon que la commande de pizza réussisse ou échoue
- Pendant la course, il a reçu une fausse notification indiquant que la pizza avait été commandée avec succès, mais aucun enregistrement de commande n’existait au point d’arrêt
- Après la course, il a amélioré la fonction Lambda afin de capturer une vidéo du navigateur en fonctionnement et de la téléverser dans un bucket S3 pour analyse
- Il suppose que l’échec vient peut-être du fait que Lambda a terminé le traitement dès que le
form.submit() final dans le navigateur Playwright a été exécuté
- Malgré cet échec, il a beaucoup appris grâce à ce projet et prévoit de réessayer lors d’une prochaine course
- Le code de ce projet est disponible sur GitHub
1 commentaires
Commentaire Hacker News