#!/bin/bash

# devart.sh par wlourf 15/02/2011.
# script permettant de récupérer le nombre de messages sur son compte deviantArt
# lancer le script sans paramètres pour plus d'infos
# Dépend de curl

# usage devart ${texeci 600 ~/bin/devart.sh 1 messages} message(s) / ${texeci 600 ~/bin/devart.sh 0 feedbacks} feedbacks

#paramètres à renseigner (******* MASQUER LE MOT DE PASSE !!******) :
username="******"
password="******"
cookie="/tmp/cookie-da.txt"
page="/tmp/da-page.html"
#fin des paramètres

#rm $cookie
#rm $page

if [[ $# < 1 ]]; then
    echo "Ce script necessite au moins un paramètre : "
    echo "  1 pour recharger la page de deviantArt"
    echo "  0 pour traiter le fichier en mémoire"
    echo 
    echo "Deuxième paramètre optionnel :"
    echo "  notices, messages, feedbacks ou notes"
    echo "  si aucun choisi, le script affiche les 4 valeurs ci-dessus"
    exit 1
fi

if [[ "$1" == "1" ]]; then
    curl -k -c "$cookie" -d "username=$username&password=$password" https://www.deviantart.com/users/login
    curl -k -b "$cookie" -s http://my.deviantart.com/messages/ > "$page"
fi

function get_nb() {
    echo `cat $page | grep "View All Messages" | awk -F'i'$1'"></i>' '{print $2}' | awk -F'<span' '{print $1}'`
}
notices=$(get_nb 3)
messages=$(get_nb 1)
feedbacks=$(get_nb 2)
notes=$(get_nb 9)

if [[ $notices == "" ]]; then notices=0;fi
if [[ $messages == "" ]]; then messages=0;fi
if [[ $feedbacks == "" ]]; then feedbacks=0;fi
if [[ $notes == "" ]]; then notes=0;fi

case $2 in
    "notices")
        echo $notices;;
    "messages")
        echo $messages;;
    "feedbacks")
        echo $feedbacks;;
    "notes")
        echo $notes;;
    *)
        echo $notices
        echo $messages
        echo $feedbacks
        echo $notes  
esac          