Wiki script - Dump sorgenti delle guide: differenze tra le versioni

+ è possibile scaricare solo una guida anziché l'intero dump
mNessun oggetto della modifica
(+ è possibile scaricare solo una guida anziché l'intero dump)
Riga 8: Riga 8:


<pre>
<pre>
#!/bin/bash
#!/bin/bash
 
# Questo file deve essere creato con lo script che si trova
# Questo file deve essere creato con lo script che si trova
# in "http://guide.debianizzati.org/index.php/Wiki script - Lista delle guide"
# in "http://guide.debianizzati.org/index.php/Wiki script - Lista delle guide"
file="listaguide_source_url"
file="listaguide_source_url"
# Crea un file temporaneo
temp=`mktemp`


# Il nome del file che contiene il dump delle guide
# Il nome del file che contiene il dump delle guide
Riga 22: Riga 20:
# Controlla se esiste il file listaguide_source_url
# Controlla se esiste il file listaguide_source_url
if [ ! -f "$file" ]; then
if [ ! -f "$file" ]; then
echo "Il file "$file" non esiste. Uscita."
echo "Il file "$file" non esiste. Uscita."
exit 1
exit 1
fi
fi


# Se wget non è installato, lo script termina.
# Se wget non è installato, lo script termina.
if [ ! -f /usr/bin/wget ]; then
if [ ! -f /usr/bin/wget ]; then
echo "wget non è presente. Uscita."
echo "wget non è presente. Uscita."
exit 1
exit 1
fi
fi
# --------------------------------------------------
# Funzione che aggiorna il dump scaricando una guida
# --------------------------------------------------
insertguide () {
# Se il file di dump non esiste, lo script termina
[ ! -f "$df" ] && exit
echo -n "Inserire il titolo della guida (es. Installare Debian): "
read "guida"
# Crea l'URL
guida="guide.debianizzati.org/index.php?title=""$guida""&action=edit"
# Salva l'URL originale
guida2=$guida
if [ -z "`grep "$guida" "$df"`" ]; then
echo "Guida non trovata" && exit
else
# Sostituisce . con \.
guida="${guida//"."/"\."}"
# Sostituisce & con \&
guida="${guida//"&"/"\&"}"
# Sostituisce / con \/
guida="${guida//"/"/"\/"}"
# Sostituisce [spazio] con \[spazio]
#guida="${guida//" "/"\ "}"
# Rimuove da wiki_source la guida con il titolo inserito
sed -i "/þþþþ/{N; /$guida/ {:a N; /øøøø/! ba;d}}" "$df"
# File temporaneo
local temp=`mktemp`
# Scarica la guida
wget -q -O "$temp" "http://$guida2"
echo "þþþþ" >> "$df"
echo "$guida2" >> "$df"
sed -n "/<textarea.*>/{s/^.*\">//;p; :a n; /.*textarea>/!{p;ba}; s/<\/textarea.*//;p}" "$temp" >> "$df"
echo "øøøø" >> "$df"
_lt
# Rimuove il file temporaneo
rm $temp
fi
}
# ----------------------------------------------
# Funzione che effettua il dump di tutte le guide
# ----------------------------------------------
totaldump () {
# Crea un file temporaneo
local temp=`mktemp`


# Previene l'accidentale sovrascrittura del dump
# Previene l'accidentale sovrascrittura del dump
if [ -f "$df" ]; then
if [ -f "$df" ]; then
echo -n "Esiste già il file "$df". Sovrascrivere [S/n]? "
echo -n "Esiste già il file "$df". Sovrascrivere [S/n]? "
read risp
read risp
case $risp in
case $risp in
  "") rm "$df" ;;
"") rm "$df" ;;
  [Ss]) rm "$df" ;;
[Ss]) rm "$df" ;;
  *) exit 1;;
*) exit 1;;
esac
esac
fi
fi


Riga 49: Riga 112:
#numero righe del file
#numero righe del file
numerolinee=`cat $file | wc -l`
numerolinee=`cat $file | wc -l`
count=1
count=1
while read linea; do
while read linea; do
echo "[$count/$numerolinee]" # visualizza il numero di guide scaricate
echo "[$count/$numerolinee]"
tput cuu1 #in alto di una riga per permettere la sovrascrittura
tput cuu1
((count++))
((count++))
wget -q -O "$temp" "$linea"
wget -q -O "$temp" "$linea"
echo "þþþþ" >> "$df"
echo "þþþþ" >> "$df"
echo "$linea" >> "$df"
echo "$linea" >> "$df"
sed -n "/<textarea.*>/{s/^.*\">//;p; :a n; /.*textarea>/!{p;ba}; s/<\/textarea.*//;p}" "$temp" >> "$df"
sed -n "/<textarea.*>/{s/^.*\">//;p; :a n; /.*textarea>/!{p;ba}; s/<\/textarea.*//;p}" "$temp" >> "$df"
echo "øøøø" >> "$df"
echo "øøøø" >> "$df"
done < "$file"
done < "$file"


# Sostituisce "&amp;lt;" con "<" nel file dump
_lt
sed -i 's/&amp;lt;/</g' "$df"


# Rimuove il file temporaneo
# Rimuove il file temporaneo
rm "$temp"
rm "$temp"
}
# Sostituisce "&lt;" con "<" nel file di dump
_lt () {
sed -i 's/&lt;/</g' "$df"
}
clear
echo -n "
########################################################################
## Script che permette di effettuare il dump dei sorgenti delle guide ##
## oppure di effettuare il dump di una sola guida. Questa verrà      ##
## cancellata da wiki_source, scaricata nuovamente e aggiunta in coda ##
## a wiki_source                                                      ##
########################################################################
[1] Dump di tutte le guide
[2] Download di una guida
Numero: "
read num
case $num in
1) totaldump ;;
2) insertguide ;;
esac
</pre>
</pre>


6 999

contributi