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.
Indice dei contenuti
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
ciao,
ho aggiunto qualche opzione al tuo 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” | grep -v “Kit+lubrificante” | sed ‘s/^.*roulant\+//’ | sed ‘s/\.webp.*$//’| sed ‘s/\+/ /g’
spero possa essere utile a qualcuno
grazie
Grande! Grazie!
Ciao Roberto! utilissimo il tuo consiglio! Sapresti aiutarmi per questo articolo https://www.decathlon.it/p/disco-ghisa-bodybuilding-28mm/_/R-p-7278?mc=1042303&c=NERO e precisamente il disco da 10kg?
Grazie!
Purtroppo al momento non ho veramente tempo libero, mi spiace
Sto eseguendo il tuo script per fassi e ottengo il seguente messaggio (ho tolto l’opzione -s dal curl):
curl: (3) Failed to convert “https to ACE; string contains a disallowed character
Semplicemente credo che nel copia incolla che hai fatto le virgolette tu le abbia prese in utf8. Prova a cambiare le virgolette con il simbolo ” sulla tua tastiera
Grazie, era infatti quello… solo che non mi da in output nulla … in cosa sbaglio ? 🙁
Semplicemente devi farlo girare all’infinito e attendere che ti dica che è disponibile! 😉