Forumet - Att logga in på UM

Att logga in på UM

71 0 1
För ungefär en miljon år sedan så skrev jag och Gifted ett bash-skript för att logga in på UM och få ut huruvida man har några oläsa citeringar eller liknande. Jag tänkte nu sätta detta skript i bruk igen, och lägga till support för inkomna anmälningar, men av någon anledning så lyckas jag inte logga in med det. [shake]

Jag vet att man måste urlencode:a användarnamn och lösenord innan man kan skicka dem, och det har jag gjort med php-cli som såhär:
php -r "echo urlencode('Åtta');"

Sedan följer själva skriptet, som ser ut såhär: (byt givetvis ut ANVÄNDARNAMN och LÖSENORD mot urlencode'ade användarnamn och lösenord)
#!/bin/bash
# Ungdomar.se script
#
# Detta script skriver ut hur många PM, Bloggkommentarer, gästboksinlägg, etc.
# som är olästa.
#-------------------------------------------------

# Write your username and password here. Needs to be urlencoded.
MY_USERNAME=ANVÄNDARNAMN
MY_PASSWORD=LÖSENORD
REFRESH_TIME=100 #allowed age for um.htm in seconds
TEMP_DIR=~/.umscript

# No editing beyond this point.
#-------------------------------------------------

#Checks to see if TEMP_DIR exists and is writable.
dirCheck ()
{
if [ ! -d "$TEMP_DIR" ]; then
mkdir $TEMP_DIR
fi
if [ ! -w "$TEMP_DIR" ]; then
echo "$TEMP_DIR is not writable. Run chmod a+w $TEMP_DIR as root."; exit 1;
fi
}

fileDownloader()
{
#Check if um.htm exists, and if it does check if
# um.htm's timestamp is less than current timestamp - $REFRESH_TIME
if [ ! -e "$TEMP_DIR/um.htm" ] || [ "$(date -r $TEMP_DIR +%s)" -lt "$(($(date +%s) - $REFRESH_TIME))" ]; then
wget --quiet --save-cookies kakburk --keep-session-cookies --post-data $LOGIN_DATA --user-agent 'Firefox' -O um.htm http://ungdomar.se/index.php
fi
}

# Extracts the number of unread posts/comments, appends empty strings and
# prints the result
getNumber ()
{
case "$1" in
pm)
# Extract the number of PM:s
PM_NUMBER=`cat um.htm | LANG=sv_SE.iso88591 sed -n 's/.*ol.st.*pm.*count..\([0-9]*\).*/\1/p'`
echo "${PM_NUMBER:=0}"
;;
blog)
# Extract the number of blog comments
BLOGG_NUMBER=`cat um.htm | LANG=sv_SE.iso88591 sed -n 's/.*bloggkommentar.*count..\([0-9]*\).*/\1/p'`
echo "${BLOGG_NUMBER:=0}"
;;
quotes)
# Extracts the number of forum comments
FORUM_NUMBER=`cat um.htm | LANG=sv_SE.iso88591 sed -n 's/.*forumkommentar.*count..\([0-9]*\).*/\1/p'`
echo "${FORUM_NUMBER:=0}"
;;
comments)
# Extract the number of image comments
IMAGE_NUMBER=`cat um.htm | LANG=sv_SE.iso88591 sed -n 's/.*albumkommentar.*count..\([0-9]*\).*/\1/p'`
echo "${IMAGE_NUMBER:=0}"
;;
guestbook)
#Extract the number of guestbook posts
GUESTBOOK_NUMBER=`cat um.htm | LANG=sv_SE.iso88591 sed -n 's/.*g.stbok.*count..\([0-9]*\).*/\1/p'`
echo "${GUESTBOOK_NUMBER:=0}"
;;
subscribed)
# Extract the number of unread subscribed threads
SUBSCRIBED_NUMBER=`cat um.htm | LANG=sv_SE.iso88591 sed -n 's/.*bevakade.*count..\([0-9]*\).*/\1/p'`
echo "${SUBSCRIBED_NUMBER:=0}"
;;
*)
echo $"Usage: $0 {pm|blog|quotes|comments|guestbook|subscribed}"
exit 1
esac
}

#-------------------------------------------------

LOGIN_DATA="action=login&login_nick=$MY_USERNAME&login_pwd=$MY_PASSWORD"

dirCheck

# Changes working directory to TEMP_DIR
cd $TEMP_DIR

# Downloads the first page you get when you log in
fileDownloader

# Extract the number of unread posts/comments
getNumber $1