Roberto Viola

Quando un nerd vuole un tapis roulant…

Mi sono messo in testa di acquistare un tapis roulant.

Sembra semplice, si va su Amazon, si cerca “Tapis Roulant”, ed il gioco è fatto.

No, non nel 2020. Già perchè il COVID si è portato via tutti Tapiri del mondo a quanto pare. O almeno quelli sensati.

I requisiti

Tanto per capirci, un buon tapis dovrebbe avere: un motore da almeno 2HP (altrimenti bruciate motori come fossero patatine fritte), bluetooth (perchè qualsiasi cosa con il bluetooth è più figo, lo sappiamo benissimo), e un inclinazione di almeno 10% (correre sul tapis è più semplice che all’aria aperta per via della mancanza di attrito, quindi aggiungiamo un po’ di difficoltà).

Decathlon

Quindi dato che Amazon è fuori dai giochi, si ripiega sul Decathlon.

Peccato che anche qui siano passati gli Unni: non c’è un Tapis manco a cercarlo con il lanternino.

La scoperta

Qui il nerd esce: inizio a spipolare (termine tecnico ovviamente) sulla pagina web del Decathlon, più precisamente questa

https://www.decathlon.it/C-801880-tapis-roulant/N-121954-disponibilita-stock~a

E noto che, ad intervalli più o meno casuali, qualche Tapis torna disponibile per una manciata di minuti!

L’ingeGGGno

Un po’ di curl, un pizzico di bash e con CRON tutto automatizziamo:

curl -s "https://www.decathlon.it/C-801880-tapis-roulant/N-121954-disponibilita-stock~a" | grep "data-product-name" | grep -v "T540C" | grep -v "Kit lubrificante per tapis roulant" | grep -v "Tappetino TRAINING MAT" | grep -v "Gel detergente igienizzante mani alcool 75% 100ml sanigel"

Analizzando questa riga di codice trovate:
-s –> per silenziare curl che normalmente e’ molto verboso (si dice verboso in italiano?)
“https://www.decathlon.it/C-801880-tapis-roulant/N-121954-disponibilita-stock~a” –> l’url da controllare
grep “data-product-name” –> il grep per la classe HTML che identifica un prodotto
grep -v “T540C” –> i vari grep dei prodotti che non mi interessano

Cron e la notifica via mail

Mettendo questo script in CRON con esecuzione ogni minuto, ogni qual volta la query ritorni un valore diverso da NULL, ci notifichera’ via mail e noi saremo pronti come giaguari a fare l’acquisto!

Edit del 18/11/202

Decathlon ha aggiornato il proprio sito web e di conseguenza sono variati i controlli da eseguire, ecco il nuovo script:

curl -s "https://www.decathlon.it/browse/c0-tutti-gli-sport/c1-fitness-palestra/c3-tapis-roulant/_/N-64uraa" | grep 'data-available="true"' -A23 | grep "source type" | grep -v "Tappetino+TRAINING+MAT"

Tapis da Fassi Sport

In molti mi hanno scritto per aiuto anche per Fassi Sport. Ecco lo script:

curl -s “https://www.fassi-sport.it/” | grep “title=\”Acquista\”” -B70 | grep “product-name” | grep -v cyclette | grep -v “Panca” | grep -v vogatore | grep -v ellittica