Automatische Archivierung yesss Gesprächsprotokolle: Unterschied zwischen den Versionen

Aus NOBAQ
Zur Navigation springenZur Suche springen
Zeile 1: Zeile 1:
x
+
<section begin="head"/>
x
+
Auch wenn es vielleicht nicht wirklich sinnvoll ist, vor allem, weil das Mobiltelephon das Gesprächsprotokoll ja auch speichert habe ich gerade ein Script geschrieben, welches das Gesprächsprotokoll des yesss-Kontomanagers automatisch downloaded und speichert. Wahrscheinlich, weil ich schon wieder zu faul für SigV bin und mich die Scripting-Lust überkommen hat ;-)
 +
<section end="head"/>
 +
 
 +
Das Script ist sehr gehackt, und verarbeitet die Daten auch nicht. Die Daten werden lediglich abgespeichert "archiviert". Auch auf Redundanzen wird nicht geachtet, um jedoch keine Daten zu verlieren, wird das Script wöchentlich per cron aufgerufen.
 +
 
 +
<source lang="bash">
 +
#!/bin/bash
 +
 
 +
login=<yess-hdy-nr>pass=<passwort>dest=~/daten/history/yesssmax=50
 +
 
 +
# setting up environment
 +
cd "$dest"
 +
cur=`date '+%Y%m%d'`
 +
mkdir -p "$cur"
 +
cd "$cur"
 +
 
 +
# get session cookie# wget does not save session-cookies with --save-cookies :-(
 +
echo -n "Getting session cookie..."
 +
wget -q -s "https://www.yesss.at/kontomanager.php" -O - | \
 +
sed -ne '/^Set-Cookie: PHPSESSID=/{s#Set-##i;s#; path=.*##gi;p;}' > cookies.txt
 +
if ! grep 'Cookie: PHPSESSID=' cookies.txt >/dev/null
 +
then
 +
        echo "No session cookie"
 +
        exit 1
 +
fi
 +
echo "OK"
 +
 
 +
# log into system
 +
echo -n "Logging into system..."
 +
wget -q --cookies=off --header "$(cat cookies.txt)" --post-data \
 +
"rufnummer=$login&passwort=$pass" "https://www.yesss.at/kontomanager.php" -O login.dat
 +
if ! grep '0699.81857275' login.dat >/dev/null
 +
then
 +
        echo "Could not log in"
 +
        exit 2
 +
fi
 +
rm -f login.dat
 +
echo "OK"
 +
 
 +
# not very elegant but just count up to 20
 +
for i in `seq 1 $max`
 +
do
 +
        echo -n "Getting page $i..."
 +
        file=`printf "page%02d.html" $i`
 +
        wget -q --cookies=off --header "$(cat cookies.txt)" \
 +
"https://www.yesss.at/kontomanager/letzte_gespraeche.php?page=$i" -O "$file"
 +
        if test $? -ne 0
 +
        then
 +
                rm -f "$file"
 +
                echo "failed"
 +
        else
 +
                echo "OK"
 +
        fi
 +
        if ! grep 'class="TabCopyBox"' "$file" >/dev/null
 +
        then
 +
                echo "No data, finished"
 +
                rm -f "$file"
 +
                break
 +
        fi
 +
done
 +
 
 +
# logging out
 +
echo -n "Logging out from yesss..."
 +
wget -q --delete-after --cookies=off --header "$(cat cookies.txt)" "https://www.yesss.at/kontomanager/logout.php"
 +
rm -f cookies.txt
 +
echo "OK"
 +
</source>
 +
 
 +
[[Kategorie:Weblog]]

Version vom 1. Februar 2008, 16:19 Uhr

Auch wenn es vielleicht nicht wirklich sinnvoll ist, vor allem, weil das Mobiltelephon das Gesprächsprotokoll ja auch speichert habe ich gerade ein Script geschrieben, welches das Gesprächsprotokoll des yesss-Kontomanagers automatisch downloaded und speichert. Wahrscheinlich, weil ich schon wieder zu faul für SigV bin und mich die Scripting-Lust überkommen hat ;-)


Das Script ist sehr gehackt, und verarbeitet die Daten auch nicht. Die Daten werden lediglich abgespeichert "archiviert". Auch auf Redundanzen wird nicht geachtet, um jedoch keine Daten zu verlieren, wird das Script wöchentlich per cron aufgerufen.

#!/bin/bash

login=<yess-hdy-nr>pass=<passwort>dest=~/daten/history/yesssmax=50

# setting up environment
cd "$dest"
cur=`date '+%Y%m%d'`
mkdir -p "$cur"
cd "$cur"

# get session cookie# wget does not save session-cookies with --save-cookies :-(
echo -n "Getting session cookie..."
wget -q -s "https://www.yesss.at/kontomanager.php" -O - | \
	sed -ne '/^Set-Cookie: PHPSESSID=/{s#Set-##i;s#; path=.*##gi;p;}' > cookies.txt
if ! grep 'Cookie: PHPSESSID=' cookies.txt >/dev/null
then
        echo "No session cookie"
        exit 1
fi
echo "OK"

# log into system
echo -n "Logging into system..."
wget -q --cookies=off --header "$(cat cookies.txt)" --post-data \
	"rufnummer=$login&passwort=$pass" "https://www.yesss.at/kontomanager.php" -O login.dat
if ! grep '0699.81857275' login.dat >/dev/null
then
        echo "Could not log in"
        exit 2
fi
rm -f login.dat
echo "OK"

# not very elegant but just count up to 20
for i in `seq 1 $max`
do
        echo -n "Getting page $i..."
        file=`printf "page%02d.html" $i`
        wget -q --cookies=off --header "$(cat cookies.txt)" \
		"https://www.yesss.at/kontomanager/letzte_gespraeche.php?page=$i" -O "$file"
        if test $? -ne 0
        then
                rm -f "$file"
                echo "failed"
        else
                echo "OK"
        fi
        if ! grep 'class="TabCopyBox"' "$file" >/dev/null
        then
                echo "No data, finished"
                rm -f "$file"
                break
        fi
done

# logging out
echo -n "Logging out from yesss..."
wget -q --delete-after --cookies=off --header "$(cat cookies.txt)" "https://www.yesss.at/kontomanager/logout.php"
rm -f cookies.txt
echo "OK"