quelli per xkcd e per c&h li ho già realizzati, quello per Dilbert dovrei guardarci sopra, ma non so se oggi ho tempo

C&H:
#!/bin/bash
<<\COMMENT
Script che scarica su una cartella scelta tutte le strisce di cyanide and happiness.
Si può usare anche una volta completato, per scaricare le nuove strisce eventualmente inserite nel sito. basta riavviare lo script
e fa tutto da solo.
made by sgnablo, rilasciato con licenza GPL (fateci un po' quello che volete :D )
COMMENT
#params
## impostare la directory su cui andare a scaricare le strisce (se non esiste viene creata automaticamente)
## esempio:
DIR="/media/DATA/Documenti/Fun/C_and_H/strip"
if [ ! -d "$DIR" ];then
mkdir -p "$DIR" #se non esiste già , crea la cartella in cui verranno inserite le strisce
fi
check=1
cifre=5 # numero di cifre che verranno usate per numerare le strip (5 in tutto, zeri a sinistra compresi)
workdir="$PWD"
if [ -z $1 ];then
start="new"
else
test=$(echo $1 | sed 's/[^0-9]//g')
if [ -z $test ];then
echo "passare solo numeri!"
exit 1
else
start=$1
fi
fi
wget -q "http://www.explosm.net/comics/$start/" ##se il download si blocca o restituisce "file esistente" quando non ha ragionevolmente
#finito, passare come parametro allo script il numero all'inizio del nome della striscia.
#ES: ./C_and_H_fetcher.sh 456
site=$(cat index.html)
temp=$(echo "$site" | grep URL= | sed 's/URL="/\
/; s%/URL.*%%' | tail -n 1 ) #ottengo la riga con solo il numero e il link della striscia
number=$(echo $temp | sed 's/IMG.*//;s/[^0-9]//g') #ricava il numero della striscia, senza errori
#echo $number
link=$(echo $temp | sed 's/.*\[IMG\]//; s/\[.*//') #link all'immagine
strip=$(basename $link) #ottengo il nome dell'ultima immagine presente nel blog
prev_url=$(echo "http://www.explosm.net"$(echo $site | grep "Previous" | sed 's/">< Previous.*//g; s/.*href="//g')) #link alla pagina precedente
rm index.html
cd $DIR #vado nella cartella delle strip
#salvataggio della strip più recente
if [ -e *"$number""_""$strip" ];then
echo "File esistente"
exit 1
else
counter=`printf %0"$cifre"d $number`
ord_strip=$(echo $counter"_""$strip")
wget -q $link -O "$ord_strip" ##&& zenity --info --text="$strip scaricato ed aggiunto in $DIR" #decommentare la parte a sinistra se si vuole che per ogni striscia si abbia una finestrella di notifica
fi
#loop che scarica tutte le strisce precedenti (se becca una già presente, si ferma)
while [ $check == 1 ];do
cd $workdir
if [ "$prev_url" == "http://www.explosm.net" ];then
echo "Raggiunta l'ultima striscia, download completo"
check=0 #può uscire dopo l'ultimo loop
else
wget -q $prev_url -O prevurl #scarico la pagina precedente
site=$(cat prevurl)
temp=$(echo "$site" | grep URL= | sed 's/URL="/\
/; s%/URL.*%%' | tail -n 1 ) #ottengo la riga con solo il numero e il link della striscia
number=$(echo $temp | sed 's/IMG.*//;s/[^0-9]//g') #ricava il numero della striscia, senza errori
#echo $number
link=$(echo $temp | sed 's/.*\[IMG\]//; s/\[.*//') #link all'immagine
strip=$(basename $link) #ottengo il nome dell'ultima immagine presente nel blog
prev_url=$(echo "http://www.explosm.net"$(echo $site | grep "Previous" | sed 's/">< Previous.*//g; s/.*href="//g')) #link alla pagina precedente
rm prevurl
cd $DIR #vado nella cartella delle strip
if [ -e *"$number""_""$strip" ];then
echo "File esistente" #se la striscia è già presente (in base al numero)
check=0 #termino il loop
exit 1
else
counter=`printf %0"$cifre"d $number`
ord_strip=$(echo $counter"_""$strip")
wget -q $link -O "$ord_strip" ##&& zenity --info --text="$strip scaricato ed aggiunto in $DIR" #decommentare la parte a sinistra se si vuole che per ogni striscia si abbia una finestrella di notifica
fi
fi
done
XKCD (oltre alla strip salva anche un file di testo con l'alternate text dell'immagine):
#!/bin/bash
<<\COMMENT
Script che scarica su una cartella scelta tutte le strisce di xkcd.
Si può usare anche una volta completato, per scaricare le nuove strisce eventualmente inserite nel sito. basta riavviare lo script
e fa tutto da solo.
made by sgnablo, rilasciato con licenza GPL (fateci un po' quello che volete :D )
COMMENT
#params
## impostare la directory su cui andare a scaricare le strisce (se non esiste viene creata automaticamente)
## esempio:
DIR="/media/DATA/Documenti/Fun/xkcd/strip"
if [ ! -d "$DIR" ];then
mkdir -p "$DIR" #se non esiste già , crea la cartella in cui verranno inserite le strisce
fi
check=1
cifre=5 # numero di cifre che verranno usate per numerare le strip (5 in tutto, zeri a sinistra compresi)
workdir="$PWD"
if [ -z $1 ];then
start=""
else
test=$(echo $1 | sed 's/[^0-9]//g')
if [ -z $test ];then
echo "passare solo numeri!"
exit 1
else
start="/"$1"/"
fi
fi
wget -q "http://xkcd.com""$start" #scarico la pagina, se viene passato un numero allo strip viene usato come pagina iniziale da cui scaricare a ritroso
temp=$(cat index.html | grep '<img src="http://imgs.xkcd.com/'| grep 'title' )
alt_text=$(echo $temp | sed 's/<img src="/\
src=/; s/title=/\
title=/; s/alt=/\
alt=/' | grep title | sed 's/title="//; s/"//' | sed "s/'/'/g; s/</</g; s/>/>/g") #ottengo il testo alternativo della striscia
number=$(cat index.html | grep 'Permanent link' | sed 's%.*http://xkcd.com/%%; s%/</h3>%%') #ricava il numero della striscia, senza errori
#echo $number
link=$(cat index.html | grep -i hotlinking | sed -e 's\<h3>Image URL (for hotlinking/embedding): \\g' -e 's\</h3>\\g')
strip=$(basename $link) #ottengo il nome dell'ultima immagine presente nel blog
if [ $(($number -1 )) -eq 404 ];then
echo "La pagina numero 404 non è presente nel sito (richiamo all'ovvio errore di page not found), salto alla precedente.."
prev_url=$(echo "http://xkcd.com/"$(($number -2 ))"/") #link alla pagina precedente corretto
else
prev_url=$(echo "http://xkcd.com/"$(($number -1 ))"/") #link alla pagina precedente
fi
rm index.html
cd $DIR #vado nella cartella delle strip
#salvataggio della strip più recente
if [ -e *"$number""_""$strip" ];then
echo "File esistente"
exit 1
else
counter=`printf %0"$cifre"d $number`
ord_strip=$(echo $counter"_""$strip")
wget -q $link -O "$ord_strip" && zenity --info --text="$ord_strip scaricato ed aggiunto in $DIR" #decommentare la parte a sinistra se si vuole che per ogni striscia si abbia una finestrella di notifica
echo "$alt_text" > "${ord_strip:0:$((${#ord_strip} - 3))}""txt" #salvo su file il testo alternato della striscia
fi
#loop che scarica tutte le strisce precedenti (se becca una già presente, si ferma)
while [ $check == 1 ];do
cd $workdir
wget -q $prev_url -O prevurl #scarico la pagina precedente
temp=$(cat prevurl | grep '<img src="http://imgs.xkcd.com/'| grep 'title' )
alt_text=$(echo $temp | sed 's/<img src="/\
src=/; s/title=/\
title=/; s/alt=/\
alt=/' | grep title | sed 's/title="//; s/"//' | sed "s/'/'/g") #ottengo il testo alternativo della striscia
number=$(cat prevurl | grep 'Permanent link' | sed 's%.*http://xkcd.com/%%; s%/</h3>%%') #ricava il numero della striscia, senza errori
link=$(cat prevurl | grep -i hotlinking | sed -e 's\<h3>Image URL (for hotlinking/embedding): \\g' -e 's\</h3>\\g')
strip=$(basename $link) #ottengo il nome del file della striscia
if [ $(($number -1 )) -le 0 ];then
echo "raggiunta l'ultima striscia, download completo"
check=0 #può uscire al prossimo loop.
else
if [ $(($number -1 )) -eq 404 ];then
echo "La pagina numero 404 non è presente nel sito (richiamo all'ovvio errore di page not found), salto alla precedente.."
prev_url=$(echo "http://xkcd.com/"$(($number -2 ))"/") #link alla pagina precedente
else
prev_url=$(echo "http://xkcd.com/"$(($number -1 ))"/") #link alla pagina precedente
fi
fi
rm prevurl
cd $DIR #vado nella cartella delle strip
if [ -e *"$number""_""$strip" ];then
echo "File esistente" #se la striscia è già presente (in base al numero)
check=0 #termino il loop
exit 1
else
counter=`printf %0"$cifre"d $number`
ord_strip=$(echo $counter"_""$strip")
wget -q $link -O "$ord_strip" && zenity --info --text="$ord_strip scaricato ed aggiunto in $DIR" #decommentare la parte a sinistra se si vuole che per ogni striscia si abbia una finestrella di notifica
echo "$alt_text" > "${ord_strip:0:$((${#ord_strip} - 3))}""txt" #salvo su file il testo alternato della striscia
fi
done
lo so, potrei farli più brevi, ma mi piace che siano ben commentati e poi non sono un mago delle regex

quella di xkcd se non sbaglio su ubuntu-it l'ha scritta elrond

enjoy
