diff --git a/gobbino b/gobbino new file mode 100755 index 0000000..320e735 --- /dev/null +++ b/gobbino @@ -0,0 +1,107 @@ +#!/usr/bin/env bash + +# Supporta scaricamento di tutti i video, e opzionalmente pdf, di alcuni corsi di +# Analisi Matematica del professor Massimo Gobbino, reperibili anche al seguente +# indirizzo: http://pagine.dm.unipi.it/gobbino/Home_Page/ArchivioDidattico.html + +usage() { + _name="$(basename "$0")" + cat << EOF +Utilizzo: ${_name} [codiceCorso] [anno] + +Note: + Per scaricare anche i pdf, digita 'pdf=true' prima di chiamare lo script. + +Esempi: + + ${_name} AM1 17 + + pdf=true ${_name} Precorsi 09 + + ${_name} AM2 18 + + ${_name} IstAM 21 + +Lista di Corsi implementati: + PCM 07 + AM1 17, AM1 15 + AM 13, AM 12, AM 11, AM 10, AM 09 + AM2 20, AM2 18, AM2 16, AM2 14 + C 07 + T 08, T 07 + AL 19, AL 15, AL 14 + SA 13, SA 11, SA 10, SA 15, SA 14, SA 12 + IstAM 21, IstAM 20, IstAM 19 + CdV 18, CdV 17, CdV 16 + Freiberg 17 + +Bug Noti: + - I precorsi del 2008 e 2009 hanno una numerazione diversa, + che non è stata implementata. Se qualche altro corso + non si scarica correttamente, fammelo sapere via mail: + f.minnocci@studenti.unipi.it. +Credits: + - http://poisson.phc.dm.unipi.it/~dilillo/Vario/Gobbino.sh + - http://pagine.dm.unipi.it/gobbino/Home_Page/ArchivioDidattico.html +EOF +exit 1 +} + +main () { + c="$1" # Codice Corso + y="$2" # Anno + + if [ "$c" = "Precorsi" ]; then + string="PCM$y" + loc="Precorsi/$string" + else + pre="L" # Prefisso + string="${c}_${y}" + loc="$string" + fi + + case "$string" in + PCM07) count=10;; AM1_17) count=135;; AM1_15) count=133;; AM13) count=109;; AM12) count=111;; AM11) count=109;; AM10) count=111;; AM09) count=109;; AM2_20) count=60;; AM2_18) count=129;; AM2_16) count=138;; AM2_14) count=60;; C07) count=48;; T08) count=100;; T07) count=100;; AL_19) count=60;; AL_15) count=60;; AL_14) count=59;; SA13) count=30;; SA11) count=26;; SA10) count=26;; SA15) count=30;; SA14) count=30;; SA12) count=30;; IstAM_21) count=70;; IstAM_20) count=70;; IstAM_19) count=70;; CdV_18) count=48;; CdV_17) count=48;; CdV_16) count=48;; Freiberg_17) count=8;; *) printf "ERRORE:\n\tNon ho trovato il corso \"$string\".\n\n" && usage;; + esac + + # Crea una cartella dopo aver controllato che il codice sia valido + mkdir "VideoGobbino$c$y" + cd "VideoGobbino$c$y" || (printf "ERRORE:\n\tNon è stato possibile creare una cartella per il corso \"$string\".\nControlla di avere i permessi necessari." && return 1) + + if [ "$count" -ge 100 ]; then + for i in $(seq -f "%03g" 1 $count); do + curl -O http://pagine.dm.unipi.it/gobbino/Tablet/$loc/"$string"_$pre$i.avi + done + + if $p; then + for i in $(seq -f "%03g" 1 $count); do + curl -O http://pagine.dm.unipi.it/gobbino/Tablet/$loc/"$string"_$pre$i.pdf + done + fi + elif [ "$count" -ge 10 ]; then + for i in $(seq -f "%02g" 1 $count); do + curl -O http://pagine.dm.unipi.it/gobbino/Tablet/$loc/"$string"_$pre$i.avi + done + + if $p; then + for i in $(seq -f "%02g" 1 $count); do + curl -O http://pagine.dm.unipi.it/gobbino/Tablet/$loc/"$string"_$pre$i.pdf + done + fi + else + for i in $(seq -f "%01g" 1 $count); do + curl -O http://pagine.dm.unipi.it/gobbino/Tablet/$loc/"$string"_$pre$i.avi + done + + if $p; then + for i in $(seq -f "%01g" 1 $count); do + curl -O http://pagine.dm.unipi.it/gobbino/Tablet/$string/"$string"_$pre$i.pdf + done + fi + fi +} + +# Esecuzione dello script +p=${pdf:-false} +[ "$#" -lt 2 ] && usage +main "$@"