Χρήστης:Flyax/Θεώρηση
Με αυτόν τον κώδικα μπορώ να θεωρήσω αυτόματα τις τελευταίες έξι νέες σελίδες που δημιούργησε ο Χρήστης: Xoristzatziki.
#!/bin/bash cookiesfile="elwikt-login-cookies.txt" wiki="el.wiktionary.org" #όνομα χρήστη, κωδικός πρόσβασης στο wiki lgname="Flyax" lgpassword="ΧΧΧΧΧ" curlargs="-s -S --retry 10 -H 'Expect:' -c $cookiesfile -b $cookiesfile -f" curlurl="http://$wiki/w/api.php?action=" function getxmlitem() { xmlitemval=`echo $xmltext | tr '>' '\n' | grep ${tokenname}= | awk -F${tokenname}= '{ print $2 }' | awk -F'"' '{ print $2 }'` } function loginerrcheck() { if [ $loginresult -ne "0" ]; then echo "Η σύνδεση απέτυχε, μάλλον λάθος κώδικας πρόσβασης" if [ -e "$cookiesfile" ]; then rm -f $cookiesfile fi exit 1 fi loginerr=`echo $login | grep Illegal` if [ ! -z "$loginerr" ]; then echo "Η σύνδεση απέτυχε, μάλλον λάθος κώδικας πρόσβασης" echo " Περισσότερες πληροφορίες:" echo " $loginerr" | sed -e "s/'/'/g;" if [ -e "$cookiesfile" ]; then rm -f $cookiesfile fi exit 1 fi return } function login() { if [ -z "$lgname" -o -z "$lgpassword" ]; then echo "Πρέπει να επεξεργαστείτε το αρχείο αυτό και να ελέγξετε τις ρυθμίσεις" echo "lgname και lgpassword." exit 1 fi login=`curl -s -S --retry 10 -H 'Expect:' -c $cookiesfile -f --data-urlencode "lgname=$lgname" --data-urlencode "lgpassword=$lgpassword" --data-urlencode "format=xml" "${curlurl}login"` loginresult=$? loginerrcheck loginneedtoken=`echo $login | grep NeedToken` if [ ! -z "$loginneedtoken" ]; then tokenname=token xmltext="$login" getxmlitem lgtoken="$xmlitemval" login=`curl -s -S --retry 10 -H 'Expect:' -c $cookiesfile -b $cookiesfile -f --data-urlencode "lgname=$lgname" --data-urlencode "lgpassword=$lgpassword" --data-urlencode "lgtoken=$lgtoken" --data-urlencode "format=xml" "${curlurl}login"` loginresult=$? loginerrcheck loginneedtoken=`echo $login | grep NeedToken` if [ ! -z "$loginneedtoken" ]; then echo "Η σύνδεση απέτυχε (NeedToken μετά από δεύτερη προσπάθεια)" if [ -e "$cookiesfile" ]; then rm -f $cookiesfile fi exit 1 fi fi echo "Συνδεθήκατε ως $lgname" } function patrolpage() { xmltext=`curl $curlargs --data-urlencode "list=recentchanges" --data-urlencode "rctype=new" --data-urlencode "rcshow=!patrolled" --data-urlencode "rcuser=Xoristzatziki" --data-urlencode "rctoken=patrol" --data-urlencode "rclimit=1" --data-urlencode "format=xml" "${curlurl}query"` tokenname=patroltoken getxmlitem patrtoken="$xmlitemval" if [ -z "$patrtoken" ]; then echo "Η αίτηση για patrol token απέτυχε, μάλλον δεν έχετε το σχετικό δικαίωμα" echo " Περισσότερες πληροφορίες:" echo " $xmltext" | sed -e "s/'/'/g;" return 1 fi tokenname=rcid getxmlitem patrolID="$xmlitemval" result=`curl $curlargs --data-urlencode "format=xml" --data-urlencode "token=$patrtoken" --data-urlencode "rcid=$patrolID" "${curlurl}patrol"` echo $result if [ "$?" -ne "0" ]; then echo "Η θεώρηση απέτυχε" return 1 fi err=`echo $result | grep -i error` if [ ! -z "$err" ]; then echo "Η θεώρηση απέτυχε... ή μας πρόλαβε άλλος" echo " Περισσότερες πληροφορίες:" echo "$err" | sed -e "s/'/'/g;" | awk -F 'error' '{ print $2 }' | awk -F '/>' '{ print $1 }' fi } ## MAIN ## if [ ! -e "$cookiesfile" ]; then login fi for i in `seq 0 5`; do patrolpage done