[IT] Automatizzare il download del pdf giornaliero di “Affari Italiani” (Mac OS X / Linux)

1. Introduzione
Al giorno d’oggi un collegamento ad Internet ci offre la possibilità di tenerci informati gratuitamente su qualsiasi argomento.
Possiamo ottenere le notizie che ci interessano in molti modi, tra cui:
* manualmente, visitando con il nostro browser preferito siti quali Google News (http://news.google.it), La Repubblica (http://www.repubblica.it/), Digg (http://www.digg.com), Punto Informatico (http://www.punto-informatico.it/), Macitynet (http://www.macitynet.it/macity/) e innumerevoli altri;
* automaticamente, tramite Feed RSS (http://it.wikipedia.org/wiki/RSS): basta iscriversi ai feed dei siti/blog di interesse e dopo ogni tot di tempo il nostro client RSS preferito scaricherà le ultime notizie disponibili, senza nessuno sforzo da parte nostra.

Oltre alle notizie del tipo “testo+immagine”, possiamo accedere gratuitamente ad una serie di altri contenuti informativi di tipo multimediale (audio, video…), ad esempio iscrivendoci ai Podcasts (http://it.wikipedia.org/wiki/Podcast), Vidcasts (=video podcasts) visitando quotidianamente Youtube (http://www.youtube.com) o Google Video (http://video.google.it/), consultando i forum etc..
Da molti siti è possibile scaricare o salvare i contenuti (in maniera più o meno semplice) sul nostro computer, per poi fruirne quando più ci aggrada, ed eventualmente anche su un dispositivo differente: ad esempio, un video in formato MP4 può essere trasferito su un iPod Video o su una Sony PSP o su uno smartphone e fruito ovunque, in libertà.

2. Affari Italiani e software richiesto (per Mac OS X)
Il sito Libero.it (http://www.libero.it) pubblica ogni giorno, dal lunedì al venerdì e dopo le 17, un piccolo magazine di 2 pagine in formato PDF con tutte le principali news del giorno più qualche gossip.

ai_2007_07_04.jpg

Per scaricarlo ogni giorno, teoricamente dovrei:
* Aprire una nuova scheda nel mio browser;
* Selezionare il link dai miei preferiti;
* Aspettare il caricamento della pagina;
* Salvare il pdf odierno nella cartella giusta;
* Chiudere la scheda;

..senza considerare che ogni giorno dovrei ricordarmi di fare tutto ciò!Troppa fatica =) I computer sono fatti per agevolarci il lavoro e allora ho pensato di automatizzare tutto il procedimento tramite script, in modo da riuscire a salvare il pdf odierno di “Affari Italiani” in 2 semplici click (realmente due, non così per dire).
Per raggiungere il mio obiettivo ho utilizzato:
* un editor di testo, in particolare l’ottimo Smultron (http://smultron.sourceforge.net) per Mac OS X;
* un po’ di sano scripting in Bash (http://it.wikipedia.org/wiki/Bash);
* Automator (http://it.wikipedia.org/wiki/Automator), per l’interfaccia grafica;
* Photoshop, per completare l’opera, dotando il workflow finale di un icona personalizzata, che potete vedere in tutto il suo splendore nel mio Dock, raffigurato nell’immagine che fa da header a questo blog.

3. Lo script in Bash
Come dicevo, “Affari Italiani” esce per 5 giorni alla settimana (dal lunedì al venerdì), dopo le 17. Il link ad ogni numero è dato dal seguente schema sintattico:

http://newsletter.libero.it/cinqueallecinque/AI_AAAA_MM_GG.pdf

dove “AAAA” è l’anno, “MM” è il mese e “GG” è il giorno.
Ad esempio, il link al numero di oggi è: http://newsletter.libero.it/cinqueallecinque/AI_2007_07_05.pdf.
Partendo da queste osservazioni, ho scritto il seguente script in Bash, che:
* ottiene la data di oggi;
* se oggi è Sabato o Domenica, appare sullo schermo il seguente messaggio “Oggi Affari Italiani non viene publicato!” e lo script termina;
* se oggi è un giorno compreso tra lunedì e venerdì, appare sullo schermo il link richiesto per il download e lo script termina.
Lo script è:

#!/bin/sh
# eldino’s getToday’sAffariItalianPdf v.1.0

# main stuff
baseLink=”http://newsletter.libero.it/cinqueallecinque/AI_”
extension=”.pdf”

#core
clear
set `date`
today=`echo $1`
sunday=`echo “Sun”`
saturday=`echo “Sat”`

if test $today == $sunday || test $today == $saturday
then
echo “Oggi Affari Italiani non viene publicato!”
else
set `date “+20%y_%m_%d”`
echo $baseLink$1$extension
fi

4. Il flusso di lavoro in Automator
Questo script l’ho poi integrato in un flusso di lavoro fatto con Apple Automator, che, come vedete dallo screenshot:
1. fa apparire una finestrella che chiede se si voglia proseguire o annullare, tanto per avere il tempo di assicurarci che vi sia la connessione Internet attiva, che non sia stato un click accidentale etc..;
2. ottiene il link in base alla data odierna;
3. segue il link ottenuto e scarica il pdf in una cartella scelta dall’utente (nel mio caso, “/Users/eldino/Documents/Scripts/eldino_affaritaliani/pdfs”);
4. mostra una notifica di avvenuto scaricamento tramite Growl (http://www.growl.info).

ai_workflow.jpg

Semplice, non trovate? =)
Dopo aver configurato il flusso di lavoro in questo modo o in modo analogo, salvatelo prima come .workflow (per eventuali modifiche future) e poi come .app.

ai_registra-come-app.jpg

Se tutto è andato a buon fine, adesso vi basterà cliccare sul .app ottenuto per scaricare nella cartella da voi scelta l’ultimo numero di “Affari Italiani” =)
Nel mio caso:

ai_procedura.jpg

Ovviamente, io lo script l’ho messo nel mio Dock, perchè così, vedendolo, mi ricordo di cliccarci sopra =)

5. L’icona
L’icona che ho fatto io è la seguente (in formato PNG, 200px x 200px):

ai_icona.png

Su Mac, per trasformarla in icona, vi consiglio l’utile applicazione freeware “img2icns.app” (http://www.macupdate.com/info.php/id/18369) o qualcosa di analogo.

6. Utilizzare lo script su Linux
Non ho ancora avuto modo di adattare il mio script a Linux, perchè il mio portatile con Mandriva non ha accesso ad Internet. Ad ogni modo, non credo sia difficile riadattarlo =) Credo basti usare il comodo comando “wget”, modificando il mio script Bash nel modo seguente:

if test $today == $sunday || test $today == $saturday
then
echo “Oggi Affari Italiani non viene publicato!”
else
set `date “+20%y_%m_%d”`
wget $baseLink$1$extension CARTELLA-DI-DESTINAZIONE
fi

Se lo riadattate con successo per Linux, fatemi sapere =)
Se la vostra Linux-box è sempre connessa ad Internet, potreste associare lo script al crontab ed farlo eseguirlo automaticamente ogni giorno alle 17.15.
Enjoy.

[eldino]

Advertisements

2 risposte a [IT] Automatizzare il download del pdf giornaliero di “Affari Italiani” (Mac OS X / Linux)

  1. giuseppe ha detto:

    lo trovo molto interessante.

  2. giuseppe ha detto:

    il fatto che ti tiene aggiornato di tutto diventa anche istruttivo,

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: