6 999
contributi
S3v (discussione | contributi) mNessun oggetto della modifica |
S3v (discussione | contributi) (+ è 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" | ||
# 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." | |||
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." | |||
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]? " | |||
read risp | |||
case $risp in | |||
"") rm "$df" ;; | |||
[Ss]) rm "$df" ;; | |||
*) exit 1;; | |||
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]" | |||
tput cuu1 | |||
((count++)) | |||
wget -q -O "$temp" "$linea" | |||
echo "þþþþ" >> "$df" | |||
echo "$linea" >> "$df" | |||
sed -n "/<textarea.*>/{s/^.*\">//;p; :a n; /.*textarea>/!{p;ba}; s/<\/textarea.*//;p}" "$temp" >> "$df" | |||
echo "øøøø" >> "$df" | |||
done < "$file" | done < "$file" | ||
_lt | |||
# Rimuove il file temporaneo | # Rimuove il file temporaneo | ||
rm "$temp" | rm "$temp" | ||
} | |||
# Sostituisce "<" con "<" nel file di dump | |||
_lt () { | |||
sed -i 's/</</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> | ||
contributi