# Script gia apostolh sms mesw cool4u.otenet.gr ?

## zen_guerrilla

Hello,

3ereis kaneis an yparxei kanena scriptaki gia na stelneis sms mesw cool4u.otenet.gr ? 

Exw syndesh otenet k 9a me voleve poly na xrhsimopoiousa kati tetoio stous server mou.

TIA

----------

## atma

Ma yparxoun eidikes thires (gateway) gia na pejei kapio programa? Giati programmata gia na stileis sms yparxoun apo pallia alla prepei na exeis (sinithos sindromi) se kapio gateway.

Ektos apo to web-inteface loipon prosferei kai gateway gia sms to cool4you?

----------

## atma

πρώτα κάνε ένα "emerge mechanize" και μετά με αυτό το script είσαι έτοιμμος..

```

OSX atma ~/Documents $ cat cool4u.py 

#!/usr/bin/env python

#

# cool4u v0.1

# Dependencies : mechanize

# Simple script to send sms via cool4u web2sms service from otenet

#

# Author: Gregory Potamianos <gregpuppy@gmail.com>

# Published under the GPL v2 :P

#

from mechanize import Browser

import sys,signal

otenet = Browser()

def login(user,password):

        otenet.open("http://tools.otenet.gr/tools/index.do")

        otenet.select_form(name="loginform")

        otenet["username"] = user

        otenet["password"] = password

        print "\nLogging in..."

        otenet.submit()

def sendsms(number,message):

        otenet.open("http://tools.otenet.gr/tools/tiles/web2sms.do?showPage=smsSend&mnu=smenu23")

        try:

                otenet.select_form(name="sendform")

        except:

                print "An Error occured. Probably Wrong Username/Password"

                sys.exit(1)

        otenet["phone"] = number

        otenet["message"] = message

        exceeded = len( otenet["message"] ) - (155 - len( otenet["email"] ))

        print "Submiting Request..."

        if exceeded > 0 :

                print "\nYou exceeded the available characters by %d\n" % (exceeded)

                sys.exit(exceeded)

        otenet.submit()

        print "Message Sent"

if __name__ == '__main__' :

        def handler(*args):

                print "\n\nBye Bye!"

                sys.exit(0)

        signal.signal(signal.SIGINT,handler)

        if len(sys.argv) == 1 :

                user = raw_input("Username : ")

                passwd = raw_input("Password : ")

                login(user,passwd)

                number = raw_input("Phone Number : ")

                msg = raw_input("SMS Message : ")

                sendsms(number,msg)

        else :

                if len(sys.argv) != 5 :

                        print "\nWrong Number of Parameters."

                        print "Usage %s <username> <password> <number> <sms>" % (sys.argv[0])

                        print "or user the interactive interface."

                else :

                        login(sys.argv[1],sys.argv[2])

                        sendsms(sys.argv[3],sys.argv[4])

OSX atma ~/Documents $ 

```

----------

## zen_guerrilla

atma: το script δουλεύει. Thanks !  :Mr. Green: 

----------

## manos

Δυστυχώς δεν υπάρχει πακέτο mechanize στο portage. 

(Υπάρχουν τα πακέτα Test-WWW-Mechanize WWW-Mechanize-FormFiller και WWW-Mechanize στην κατηγορία dev-perl.)

Χρειαζόμαστε όμως το module mechanize για python που εγώ προσωπικά δεν είχα και έπαιρνα το μήνυμα:

```
$ python2.4 cool4u.py

Traceback (most recent call last):

  File "cool4u.py", line 11, in ?

    from mechanize import Browser

ImportError: No module named mechanize
```

Για να το λύσω αυτό έκανα τα παρακάτω:

Κατέβασα το "Easy Install" http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install και το έτρεξα ως root:

```
#wget http://peak.telecommunity.com/dist/ez_setup.py

#python2.4 ez_setup.py
```

Αφού έγινε η εγκατάσταση, για να εγκαταστήσω το ζητούμενο module έτρεξα:

```
 #easy_install mechanize
```

όπως γράφει στη σελίδα http://wwwsearch.sourceforge.net/mechanize/, στην παράγραφο Getting mechanize - EasyInstall / setuptools

Μετά από αυτά, το script έτρεξε κανονικά..

Ευχαριστώ atma   :Very Happy: 

Ίσως το μόνο που μένει είναι να μην αφήνει τον χρήστη να γράψει πάνω από τους επιτρεπτούς χαρακτήρες αντί να δίνει: 

```
You exceeded the available characters by ...
```

----------

