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

11 thoughts on “Quando un nerd vuole un tapis roulant…

  1. 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

  2. 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

    1. 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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

The maximum upload file size: 30 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here