Wiki script - Dump sorgenti delle guide: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
S3v (discussione | contributi) (+ è possibile scaricare solo una guida anziché l'intero dump) |
S3v (discussione | contributi) Nessun oggetto della modifica |
||
Riga 36: | Riga 36: | ||
insertguide () { | insertguide () { | ||
local guida guida2 | |||
# Se il file di dump non esiste, lo script termina | # Se il file di dump non esiste, lo script termina | ||
[ ! -f "$df" ] && exit | [ ! -f "$df" ] && echo "$df non esiste" && exit | ||
echo -n "Inserire il titolo della guida (es. Installare Debian): " | echo -n "Inserire il titolo della guida (es. Installare Debian): " | ||
Riga 43: | Riga 46: | ||
# Crea l'URL | # Crea l'URL | ||
guida="guide.debianizzati.org/index.php?title= | guida="guide.debianizzati.org/index.php?title="$guida"&action=edit" | ||
# Salva l'URL originale | # Salva l'URL originale | ||
Riga 49: | Riga 52: | ||
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 | _lt | ||
# Rimuove il file temporaneo | # Rimuove il file temporaneo | ||
rm $temp | rm $temp | ||
fi | fi | ||
Riga 91: | Riga 94: | ||
totaldump () { | totaldump () { | ||
local linea | |||
# Crea un file temporaneo | # Crea un file temporaneo | ||
Riga 111: | Riga 116: | ||
#numero righe del file | #numero righe del file | ||
numerolinee=`cat $file | wc -l` | local numerolinee=`cat $file | wc -l` | ||
count=1 | |||
local count=1 | |||
while read linea; do | while read linea; do | ||
echo "[$count/$numerolinee]" | echo "[$count/$numerolinee]" |
Versione delle 10:44, 18 mar 2014
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 () { local guida guida2 # Se il file di dump non esiste, lo script termina [ ! -f "$df" ] && echo "$df non esiste" && 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 () { local linea # 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 local numerolinee=`cat $file | wc -l` local 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) | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |