scripts

misc scripts and tools
git clone git://git.2f30.org/scripts.git
Log | Files | Refs

mycosmos (1661B)


      1 #!/bin/sh
      2 
      3 # send sms messages using the mail.mycosmos.gr service
      4 # depends: curl
      5 
      6 if test -z "$4"
      7 then
      8     echo usage: $0 user pass target message
      9     exit
     10 fi
     11 
     12 USER=$1
     13 PASS=$2
     14 TARGET=$3
     15 MESSAGE="$4"
     16 
     17 # should be 140 chars max
     18 if test "$(echo -n $MESSAGE | wc -m)" -gt 140
     19 then
     20     echo message too long
     21     exit
     22 fi
     23 
     24 LOGINURL='http://mail.mycosmos.gr/mycosmos/login.aspx'
     25 SENDURL='http://mail.mycosmos.gr/mycosmos/SMS_Send.aspx'
     26 COOKIEJAR=$(mktemp)
     27 
     28 # visit login page
     29 VIEWSTATE=$(curl --cookie-jar $COOKIEJAR $LOGINURL 2> /dev/null \
     30     | grep VIEWSTATE | sed 's/.*value="\(.*\)".*/\1/')
     31 FRESH=$(grep mycosmos $COOKIEJAR \
     32     | awk '{print $6"="$7";"}' | tr '\n' ' ' | sed 's/; $//')
     33 COOKIES=$FRESH
     34 
     35 # do login
     36 curl --cookie-jar $COOKIEJAR \
     37     --cookie "$COOKIES" \
     38     --form "__VIEWSTATE=$VIEWSTATE" \
     39     --form "tbUsername=$USER" \
     40     --form "tbPassword=$PASS" \
     41     --form "btLogin=Log On" \
     42     --silent $LOGINURL > /dev/null
     43 
     44 FRESH=$(grep mycosmos $COOKIEJAR \
     45     | awk '{print $6"="$7";"}' | tr '\n' ' ' | sed 's/; $//')
     46 COOKIES="$COOKIES; $FRESH"
     47 
     48 # clear cookies
     49 rm $COOKIEJAR
     50 
     51 # visit send page
     52 VIEWSTATE=$(curl --cookie "$COOKIES" $SENDURL 2> /dev/null \
     53     | grep VIEWSTATE | sed 's/.*value="\(.*\)".*/\1/')
     54 
     55 # send text message
     56 STAT=$(curl --cookie "$COOKIES" \
     57     --form "__VIEWSTATE=$VIEWSTATE" \
     58     --form "txtMobile=$TARGET" \
     59     --form "txtMessage=$MESSAGE" \
     60     --form "btnSend=Send" \
     61     --silent $SENDURL)
     62 
     63 # report status
     64 if test "$(echo $STAT | grep 'Success=True')"
     65     then SENT=yes
     66     else SENT=no
     67 fi
     68 if test "$(echo $STAT | grep 'LimitReached=false')"
     69     then LAST=no
     70     else LAST=yes
     71 fi
     72 echo "sent=$SENT last=$LAST"