Wiki script - Lista delle guide: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 46: Riga 46:
  message2
  message2
  exit 1
  exit 1
fi
# Cancella, se presente, il file listaguide_titoli
if [ -f $file1 ]; then
  rm $file1
fi
fi


Riga 55: Riga 60:
  awk -F 'title=\"|\">' '{ for (i=6; i<=NF; i++) print $i }' $tempfile1 | sed '1b;/<\/\?a/d'> $tempfile2
  awk -F 'title=\"|\">' '{ for (i=6; i<=NF; i++) print $i }' $tempfile1 | sed '1b;/<\/\?a/d'> $tempfile2
  # Nome della pagina successiva
  # Nome della pagina successiva
  ext="`head -n1 $tempfile2 | awk -F '[()]' '{ print $2 }'`"
  ext="`awk -F '[()]' ' NR==1 { print $2 }' $tempfile2`"
  if [ "$ext" = "" ]; then
  if [ "$ext" = "" ]; then
   # se non c'è nessuna pagina successiva, vengono cancellate eventuali righe vuote
   # se non c'è nessuna pagina successiva, vengono cancellate eventuali righe vuote
Riga 65: Riga 70:
   sed -i '/^$/d' $tempfile2
   sed -i '/^$/d' $tempfile2
  fi
  fi
  # viene creato il file listaguide_titoli
# viene creato il file listaguide_titoli
  cat $tempfile2 >> $file1
cat $tempfile2 >> $file1
done
done



Versione delle 12:08, 24 dic 2012

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

Questo script crea tre file:

  • listaguide_titoli: contiene i titoli di tutte le guide del Wiki
  • listaguide_url: contiene gli indirizzi di tutte le guide del Wiki
  • listaguide_source_url: contiene gli indirizzi delle pagine sorgente di tutte le guide del Wiki

Script basato sull'output di queste pagine.

#!/bin/bash

# variabili
file1=listaguide_titoli
file2=listaguide_url
file3=listaguide_source_url
url_pagina="http://guide.debianizzati.org/index.php?title=Speciale:Prefissi&from="
ext="&namespace=0"
pref="guide.debianizzati.org/index.php"
# crea due file temporanei
tempfile1=`mktemp`
tempfile2=`mktemp`

# messaggi
message1 () {
 echo -n "Esiste già un file $file1 o $file2 o $file3. Sovrascrivere [S/n]? "
}

message2 () {
 echo "wget non è installato. Uscita."
}

# previene la cancellazione accidentale dei file
if [ -f $file1 -o -f $file2 -o -f $file3 ]; then
 message1
 read risp
 case $risp in
  "") ;;
  [Ss]) ;;
  *) exit 1;;
 esac
fi

# Verifica se wget è presente
if [ ! -f /usr/bin/wget ]; then
 message2
 exit 1
fi

# Cancella, se presente, il file listaguide_titoli
if [ -f $file1 ]; then
  rm $file1
fi

x=true
while $x; do
 # scarica la prima pagina e ne filtra solo la riga con le guide. Il risultato va in tempfile1
 wget -q -O - "$url_pagina""$ext" | sed -n '/.*<td id/,1p' > $tempfile1
 # Estrae i nomi delle guide dalla riga, cancella le righe che contengono <a o </a tranne la prima. Il risultato è in tempfile2
 awk -F 'title=\"|\">' '{ for (i=6; i<=NF; i++) print $i }' $tempfile1 | sed '1b;/<\/\?a/d'> $tempfile2
 # Nome della pagina successiva
 ext="`awk -F '[()]' ' NR==1 { print $2 }' $tempfile2`"
 if [ "$ext" = "" ]; then
  # se non c'è nessuna pagina successiva, vengono cancellate eventuali righe vuote
  sed -i '/^$/d' $tempfile2
  x=false
 else
  # se esiste una pagina successiva, viene cancellata la prima riga e eventuali righe vuote
  sed -i '1d' $tempfile2
  sed -i '/^$/d' $tempfile2
 fi
 # viene creato il file listaguide_titoli
 cat $tempfile2 >> $file1
done

# viene creato il file listaguide_url
sed "s#^#$pref/#" "$file1" > "$file2"
# viene creato il file listaguide_source_url
sed "s#.*#$pref?title=&\&action=edit#" "$file1" > "$file3"

# rimozione file temporanei
rm $tempfile1 $tempfile2




Guida scritta da: S3v 16:05, 23 dic 2012 (CET) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

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