#!/bin/bash # # orange-sms.SlackBuild # code: Vicious (michal@scxd.info); improvements: Zielony (e-pl@o2.pl) set -e # PACKAGE GENERAL INFO [EDIT] PKGNAME=orange-sms VERSION=0.7 BUILD=1X ARCH=i686 URL=http://scxd.info/pub/archives/orange-sms-$VERSION.tgz CWD=`pwd` TMP=/tmp/$PKGNAME if [ ! -d $TMP/$PKGNAME-$VERSION ]; then rm -rf $TMP/package mkdir -p $TMP $TMP/package $TMP/package/install # PACKAGE DESCRIPTION [EDIT] cat << SLACKDESC | fmt -w $(( 80 - `echo $PKGNAME | wc -c` - 3 )) | perl -pe "s/^/$PKGNAME: /" > $TMP/package/install/slack-desc orange-sms Skrypt do wysyłania SMSów do sieci Orange. Package prepared by Zielony (e-pl@o2.pl) SLACKDESC cd $TMP # step 1: DOWNLOAD SOURCE PKGFNAME=`ls -t | grep -i $PKGNAME*.t*z* | head -1` if [ -z $PKGFNAME ]; then ( wget -c $URL -P $TMP -O $PKGNAME-$VERSION.${URL//*.} ) # step 2: UNPACK SOURCE AND COMPILE PKGFNAME=`ls -t | grep -i $PKGNAME*.t*z* | head -1` fi EXTENSION=`echo ${PKGFNAME//*.}` if [ $EXTENSION = "bz2" ]; then tar jxvf $PKGFNAME -C $TMP else tar xvfz $PKGFNAME -C $TMP fi DIRNAME=`tar tf $PKGFNAME | head -1` if [ $DIRNAME != $PKGNAME-$VERSION/ ]; then mv $DIRNAME $PKGNAME-$VERSION; fi chown root:root $TMP -R fi cd $TMP/$PKGNAME-$VERSION cat << 'PATCH' | patch -p0 --- orange.sh.old 2005-11-20 16:19:06.000000000 +0100 +++ orange.sh 2006-10-07 00:02:22.000000000 +0200 @@ -9,7 +9,7 @@ # Konfiguracja: wpisz poniżej nadawcę, np. NADAWCA="Zenobiusz" - NADAWCA="zenobiusz" + NADAWCA="KTOS" W=0 # Powyższa zmienna określa, czy SMS ma być wysyłany jeśli jest za długi @@ -65,17 +65,17 @@ # numer telefonu if [ `echo -n $1 | grep -x "[[:digit:]]*" | wc -l` -eq 0 ] then # numer z ksiazki telefonicznej - if [ -e ksiazka.tel ] + if [ -e $HOME/.ksiazka.tel ] then - if [ `cat ksiazka.tel | grep -x "$1:[[:digit:]]*" | wc -l` -ne 1 ] + if [ `cat $HOME/.ksiazka.tel | grep -x "$1:[[:digit:]]*" | wc -l` -ne 1 ] then echo "Nie znalazłem odpowiedniego wpisu w książce telefonicznej, bądź jest on wielokrotny" exit 1 else - NR=`cat ksiazka.tel | grep -x "$1:[[:digit:]]*" | cut -d":" -f 2` + NR=`cat $HOME/.ksiazka.tel | grep -x "$1:[[:digit:]]*" | cut -d":" -f 2` fi else - echo "Brak pliku ksiazka.tel" + echo "Brak pliku .ksiazka.tel" exit 1 fi else @@ -112,24 +112,26 @@ url="http://sms.orange.pl/rotate_token.aspx?token=$value" wget -O token.gif $url &>/dev/null - convert token.gif -crop 220x61 -modulate 600,90,100 token.pbm +# convert token.gif -crop 220x61 -modulate 600,90,100 token.pbm + convert token.gif -crop 220x61 -negate -level 90% -fill black -draw 'color 1,1 floodfill' -negate token.pbm + # OPCJE GOCR (-m): 2 - uzywa stworzonej bazy, 130 - manualna nauka nierozpoznanych liter - # t1=`gocr -m 130 -d 10 token.pbm` - t1=`gocr -m 2 -d 10 token.pbm 2>/dev/null | tr 'A-Z0;íI5q7DQ' 'a-zoiilsgnpa' | tr '[:upper:]' '[:lower:]' | sed 's/[^[a-z]]*//g' | grep [[:alnum:]]` + # t1=`gocr -m 130 -d 2 token.pbm` + t1="`gocr -m 2 token.pbm # 2>/dev/null | tr 'A-Z0;íI5q7DQ' 'a-zoiilsgnpa' | tr '[:upper:]' '[:lower:]' | sed 's/[^[a-z]]*//g' | grep [[:alnum:]]`" -# echo $t1 + echo $t1 curl -s -d "token=$value&SENDER=$NADAWCA&RECIPIENT=$NR&SHORT_MESSAGE=$tresc&CHK_RESP=on&respInfo=2&pass=$t1" http://sms.orange.pl/sendsms.aspx > DUMP.$$ if - [ `cat DUMP.$$ | grep -ie "b.*dne has.*o" | wc -l | sed 's/ //g'` -eq 0 ] + [ "`cat DUMP.$$ | grep -ie "b.*dne has.*o" | wc -l | sed 's/ //g'`" -eq 0 ] then if - [ `cat DUMP.$$ | grep -ie "SMS wys.*any" | grep -ive "nie" | wc -l | sed 's/ //g'` -ne 0 ] + [ "`cat DUMP.$$ | grep -ie "SMS wys.*any" | grep -ive "nie" | wc -l | sed 's/ //g'`" -ne 0 ] then echo "SMS został wysłany" DALEJ=0 else - if [ `cat DUMP.$$ | grep -ie "wyczerpany" | wc -l | sed 's/ //g'` -ne 0 ] + if [ "`cat DUMP.$$ | grep -ie "wyczerpany" | wc -l | sed 's/ //g'`" -ne 0 ] then echo "Odbiorca przekroczył dzienny limit odebranych SMSów" DALEJ=0 PATCH mkdir -p $TMP/package/usr/bin cp orange.sh $TMP/package/usr/bin/$PKGNAME # step 3: STRIP BINARIES & GZIP MANUALS ( cd $TMP/package find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) ( gzip $TMP/package/usr/man/man?/* ) # step 4: CREATE PACKAGE & CLEAN TMP cd $TMP/package if [ `ls | wc -m` -le 8 ]; then echo "Brak plików pakietu!" else cat << SLACK_REQUIRED > $TMP/package/install/slack-required gocr imagemagick wget lynx curl SLACK_REQUIRED makepkg -l y -c n $CWD/$PKGNAME-$VERSION-$ARCH-$BUILD.tgz #rm -rf $TMP fi