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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
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>



Versione delle 10:29, 18 mar 2014

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian


Questo script si occupa di creare un file di testo contenente la pagina sorgente di tutte le guide del namespace principale del Wiki.
Lo script si basa sul file "listaguide_source_url" creato con quest'altro script. Il dump si troverà nel file "wiki_source".


#!/bin/bash

# Questo file deve essere creato con lo script che si trova
# in "http://guide.debianizzati.org/index.php/Wiki script - Lista delle guide"
file="listaguide_source_url"

# Il nome del file che contiene il dump delle guide
df="wiki_source"

# Controlla se esiste il file listaguide_source_url
if [ ! -f "$file" ]; then
echo "Il file "$file" non esiste. Uscita."
exit 1
fi

# Se wget non è installato, lo script termina.
if [ ! -f /usr/bin/wget ]; then
echo "wget non è presente. Uscita."
exit 1
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
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

# Legge gli indirizzi delle pagine dal file listaguide_source_url
# e invia le pagine sorgente al file "wiki_source" con due righe di separazione:
# iniziale (þ=AltGr+p) e finale (ø=AltGr+o)

#numero righe del file
numerolinee=`cat $file | wc -l`
count=1
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"

_lt

# Rimuove il file temporaneo
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




Guida scritta da: S3v 22:36, 22 mar 2013 (CET) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized