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

Vai alla navigazione Vai alla ricerca
funzione _esci spostata prima del primo check
Nessun oggetto della modifica
(funzione _esci spostata prima del primo check)
 
(8 versioni intermedie di 2 utenti non mostrate)
Riga 6: Riga 6:
Lo script si basa sul file "listaguide_source_url" creato con [[Wiki script - Lista delle guide|quest'altro script]].
Lo script si basa sul file "listaguide_source_url" creato con [[Wiki script - Lista delle guide|quest'altro script]].
Il dump si troverà nel file "wiki_source".
Il dump si troverà nel file "wiki_source".
{{Box|Nota|Una versione ''leggermente'' più veloce e scritta in Python 3 è visibile [[Wiki script - Dump sorgenti delle guide (Python 3)| qui]].}}


<pre>
<pre>
#!/bin/bash
#!/bin/bash


Riga 17: Riga 17:
# Il nome del file che contiene il dump delle guide
# Il nome del file che contiene il dump delle guide
df="wiki_source"
df="wiki_source"
# Funzione di uscita
_esci () {
  echo
  echo "Script terminato"
  exit 0
}


# 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
  _esci
fi
fi


# Se wget non è installato, lo script termina.
# Se wget non è installato, lo script termina.
if [ ! -f /usr/bin/wget ]; then
if [ -z "$(which wget)" ]; then
echo "wget non è presente. Uscita."
  echo "wget non è presente. Uscita."
exit 1
  _esci
fi
fi
# Cattura Ctrl+c
trap _esci INT




Riga 40: Riga 50:


# Se il file di dump non esiste, lo script termina
# Se il file di dump non esiste, lo script termina
[ ! -f "$df" ] && echo "$df non esiste" && exit
[ ! -f "$df" ] && echo "$df non esiste" && _esci


echo -n "Inserire il titolo della guida (es. Installare Debian): "
echo -n "Inserire il titolo della guida (es. Installare Debian): "
Riga 52: Riga 62:


if [ -z "`grep "$guida" "$df"`" ]; then
if [ -z "`grep "$guida" "$df"`" ]; then
echo "Guida non trovata" && exit
  echo "Guida non trovata" && exit
else
else
# Sostituisce . con \.
  # Sostituisce . con \.
guida="${guida//"."/"\."}"
  guida="${guida//"."/"\."}"


# Sostituisce & con \&
  # Sostituisce & con \&
guida="${guida//"&"/"\&"}"
  guida="${guida//"&"/"\&"}"


# Sostituisce / con \/
  # Sostituisce / con \/
guida="${guida//"/"/"\/"}"
  guida="${guida//"/"/"\/"}"


# Sostituisce [spazio] con \[spazio]
  # Sostituisce [spazio] con \[spazio]
#guida="${guida//" "/"\ "}"
  #guida="${guida//" "/"\ "}"


# Rimuove da wiki_source la guida con il titolo inserito
  # Rimuove da wiki_source la guida con il titolo inserito
sed -i "/þþþþ/{N; /$guida/ {:a N; /øøøø/! ba;d}}" "$df"
  sed -i "/þþþþ/{N; /$guida/ {:a N; /øøøø/! ba;d}}" "$df"


# File temporaneo
  # File temporaneo
local temp=`mktemp`
  local temp=`mktemp`


# Scarica la guida
  # Scarica la guida
wget -q -O "$temp" "http://$guida2"
  wget -q -O "$temp" "http://$guida2"


echo "þþþþ" >> "$df"
  echo "þþþþ" >> "$df"
echo "$guida2" >> "$df"
  echo "$guida2" >> "$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"


_lt
  # Chiama la funzione _lt
  _lt


# Rimuove il file temporaneo
  # Rimuove il file temporaneo
rm $temp
  rm $temp


fi
fi
Riga 89: Riga 100:




# ----------------------------------------------
# -----------------------------------------------
# Funzione che effettua il dump di tutte le guide
# Funzione che effettua il dump di tutte le guide
# ----------------------------------------------
# -----------------------------------------------


totaldump () {
totaldump () {
Riga 102: Riga 113:
# 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;;
    *) _esci;;
esac
  esac
fi
fi


Riga 117: Riga 128:
#numero righe del file
#numero righe del file
local numerolinee=`cat $file | wc -l`
local numerolinee=`cat $file | wc -l`
# Ultima conferma prima di partire con il download
echo -n "Avviare il download di "$numerolinee" guide [S/n]? "
read risp
if [ "$risp" != "S" ] && [ "$risp" != "s" ] && [ "$risp" != "" ]; then
  _esci
fi


local count=1
local count=1


while read linea; do
while read linea; do
echo "[$count/$numerolinee]"
  echo "Download della guida $count su un totale di $numerolinee"
tput cuu1
  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"


Riga 138: Riga 156:




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


Riga 155: Riga 173:
[1] Dump di tutte le guide
[1] Dump di tutte le guide
[2] Download di una guida
[2] Download di una guida
[3] Esci
Numero: "
Numero: "
read num
read num
case $num in
case $num in
1) totaldump ;;
  1) totaldump ;;
2) insertguide ;;
  2) insertguide ;;
  *) _esci ;;
esac
esac
echo ""
</pre>
</pre>


{{Autori
{{Autori
|Autore=[[Utente:S3v|S3v]] 22:36, 22 mar 2013 (CET)
|Autore=[[Utente:S3v|S3v]] 22:36, 22 mar 2013 (CET)
|Verificata_da=
: [[Utente:HAL 9000|HAL 9000]] 18:36, 3 mag 2015 (CEST)
|Estesa_da=
|Numero_revisori=1
}}
}}


[[Categoria:Bash Scripting]][[Categoria:Wiki]]
[[Categoria:Bash Scripting]][[Categoria:Wiki]]
6 999

contributi

Menu di navigazione