Benutzer:KMic/Inaktive Admins/Bash-Skript

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
#!/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;