Benutzer:KMic/Inaktive Admins/Bash-Skript
aus Wikipedia, der freien Enzyklopädie
#!/bin/sh
# 1. Herunterladen der Liste aller Admins (lynx) und Herausfiltern der Benutzernamen mit sed und grep (entscheidende Zeile rausfinden, an entscheidender Stelle Zeilenumbrüche setzen, erste Zeile komplett sowie nicht benötigte Teile der anderen Zeilen löschen, Admins mit Sonderfunktionen entfernen.)
lynx -source "http://de.wikipedia.org/w/index.php?title=Spezial:Benutzer/sysop&offset=&limit=500&group=sysop" \
| sed -n '/Benutzer:/ p' \
| sed 's/title="Benutzer[in]*:/&\n/g' \
| sed '1 d' | sed 's/" class=".*//' | sed 's/ (Seite nicht vorhanden).*//' | sed 's/">.*//' \
| grep -v 'Aft5monitor' \
| grep -v 'Aft5hide' \
| grep -v 'Domas Mituzas' \
| grep -v 'Fabrice Florin (WMF)' \
| grep -v 'Mlitn' \
> admins
# 2. Überprüfung der Stimmberechtigung aller Admins (Stimmberechtigungstool, lynx, grep) und Ausgabe aller nicht stimmberechtigter Admins in Wiki-Syntax.
echo "== Admins ohne Stimmberechtigung =="
echo "Stand: `date`"
if test -f admins_ohne_sb
then
rm admins_ohne_sb
fi
cat admins \
| while read benutzer; do
benutzer2=`echo $benutzer | sed 's/ /+/g'`
lynx -dump http://toolserver.org/~stimmberechtigung/index.php?user=$benutzer2 | grep ' Allgemeine Stimmberechtigung' | grep 'nicht stimmberechtigt' > /dev/null
if [ $? = "0" ] ; then
echo "# {{Admininfo|$benutzer}} [http://toolserver.org/~stimmberechtigung/index.php?user=$benutzer2 Stimmberechtigung prüfen]"
echo $benutzer >> admins_ohne_sb
fi
done;
echo
# 3. Überprüfung der Logbuchaktivität aller Admins
# Daten herunterladen
lynx -source "http://tools.wikimedia.de/~vvv/adminstats.php?wiki=dewiki_p&tlimit=31536000" > adminstats.php.html
## 3.1 Überprüfung auf Admins ohne Stimmberechtigung, die aber dennoch aktiv sind
#echo "=== Davon Admins mehr als 10 Admin-Logbuchaktionen in den letzten 12 Monaten ==="
#echo "Stand: `date`"
## Adminliste einlesen und Daten auswerten
#cat admins_ohne_sb \
#| while read benutzer; do
# logs=`cat "adminstats.php.html" \
# | grep -F ">$benutzer</a>" -A 1 \
# | sed -n 's/<td>[0-9][0-9]*<\/td>/&/p' \
# | sed 's/^.*<td>//' | sed 's/<\/td>//'`
## Logbucheinträge überprüfen
# if [ $logs -gt 10 ] ; then
# benutzer2=`echo $benutzer | sed 's/ /+/g'`
# echo "# {{Admininfo|$benutzer}} [http://toolserver.org/~stimmberechtigung/index.php?user=$benutzer2 Stimmberechtigung prüfen]"
# fi
#done;
#echo
# 3.2 Überprüfung auf Admins MIT Stimmberechtigung, die aber *als Admin* inaktiv sind
echo "== Admins ''mit'' Stimmberechtigung, aber mit 10 oder weniger Admin-Logbuchaktionen in den letzten 12 Monaten =="
echo "(Ohne [[Wikipedia:Liste der Administratoren#Administratoren als Schiedsrichter|Mitglieder des Schiedsgerichts]] und ohne [[Wikipedia:Liste der Administratoren#Andere Sonderfunktionsträger mit Adminbefugnissen|Sonderfunktionsträger mit Adminbefugnissen]]. Neue oder neu wiedergewählte Admins (letzte Wahl vor weniger als einem Jahr) bitte manuell einen Abschnitt weiter nach unten verschieben.)<br />"
echo "Stand: `date`"
# Adminliste einlesen und Daten auswerten
cat admins \
| while read benutzer; do
logs=`cat "adminstats.php.html" \
| grep -F ">$benutzer</a>" -A 1 \
| sed -n 's/<td>[0-9][0-9]*<\/td>/&/p' \
| sed 's/^.*<td>//' | sed 's/<\/td>//'`
# Doppeleinträge entfernen
if [ "$benutzer" = "-jkb-" ] ; then
grep -e "$benutzer" admins_ohne_sb > /dev/null
else
grep -F "$benutzer" admins_ohne_sb > /dev/null
fi
if [ $? = "1" ] ; then
# SG-Mitglieder raus
if [ "$benutzer" != "Alraunenstern" ] &&
[ "$benutzer" != "Alupus" ] &&
[ "$benutzer" != "Aschmidt" ] &&
[ "$benutzer" != "Codc" ] &&
[ "$benutzer" != "Krd" ] &&
[ "$benutzer" != "Nicola" ] &&
[ "$benutzer" != "Perrak" ] &&
[ "$benutzer" != "Plani" ] &&
[ "$benutzer" != "Snevern" ] &&
[ "$benutzer" != "Toter Alter Mann" ]
then
# Logbucheinträge überprüfen
if [ $logs -le 10 ] ; then
benutzer2=`echo $benutzer | sed 's/ /+/g'`
echo "# {{Admininfo|$benutzer}} [http://toolserver.org/~stimmberechtigung/index.php?user=$benutzer2 Stimmberechtigung prüfen]"
fi
fi
fi
done;