Benutzer:Asturius/SLA-Review/Skripte/slahunter

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
#!/bin/bash
# Aktuelle Schnelllöschkandidaten alle 60 Sekunden temporär sichern

BACKUPDIR=~/SLA-Jagd/tempbackup
TEMPFILE=~/SLA-Jagd/sla.tmp

# Firefox starten
#~ firefox -new-window "https://de.wikipedia.org/wiki/Kategorie:Wikipedia:Schnelll%C3%B6schen" &

# Temporäre Dateien leeren
echo > "$TEMPFILE"

# Endlosschleife
while true
do
    # Artikel mit SLA heraussuchen
    curl -s "https://de.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Kategorie:Wikipedia:Schnelll%C3%B6schen&cmnamespace=0&cmtype=page&cmprop=title&format=txt" | grep '\[title\]' | cut -c40- | sed 's|/|%2F|g' > $TEMPFILE
    
    # Artikel sichern
    cat $TEMPFILE | while read SEITE
    do

   
        # Alles erstmal temporär abspeichern
        SEITE2=`echo "$SEITE" | tr [:blank:] _ | sed 's/&/%26/g' | sed 's/+/%2B/g'`
        curl -s "https://de.wikipedia.org/w/index.php?title=$SEITE2&action=render" > "${BACKUPDIR}/tmp.html"

        # Weiterleitungen ignorieren
        if ``grep -q -i "<li>WEITERLEITUNG" "${BACKUPDIR}/tmp.html"``
        then
            rm "${BACKUPDIR}/tmp.html"
            continue
        fi
        if ``grep -q -i "<li>redirect" "${BACKUPDIR}/tmp.html"``
        then
            rm "${BACKUPDIR}/tmp.html"
            continue
        fi


        # Verhindern, dass bereits gesicherte Seiten mit dem "Inhalt" gerade gelöschter Seiten überschrieben werden.
        if ``grep -q "Diese Seite wurde gelöscht. Zur Information folgt das Lösch- und Verschiebungs-Logbuch dieser Seite." "${BACKUPDIR}/tmp.html"``
        then
            rm "${BACKUPDIR}/tmp.html"
            continue
        fi


        # Hinweis nur dann, wenn der Artikel das erste Mal auftaucht
        if [ ! -s "${BACKUPDIR}/${SEITE}.html" ]
        then
            echo
            echo "${SEITE}"
        fi

        # Temporäre Sicherung an die richtige Stelle verschieben
        mv "${BACKUPDIR}/tmp.html" "${BACKUPDIR}/${SEITE}.html"
        echo "<meta charset="UTF-8" />" >> "${BACKUPDIR}/${SEITE}.html"

       
    done;

    # Hinweis auf erfolgten Schleifendurchlauf und 60 Sekunden warten
    echo -n "."    
    sleep 60
done