#!/usr/bin/env python
# -*- coding: iso-8859-2 -*-
#
# Script: sms.orangembox.py
# Version: 0.5
# Date: 07/04/2009
# URL: http://rodion.grolsh.pl/orangembox.php
# Works with python version 2.4.1 or higher
# Copyright (c) 2007,2008,2009 Rodion
# Thanks to oort
# License: http://rodion.grolsh.pl/bsd-license.txt
#
import cookielib, string, urllib, urllib2
debug = 0 # for debug change to '1'
freesms = 0 # for smses left change to '1'
phonebook = 'phonebook.txt'
login = '' # set login
password = '' # set password
# cat phonebook.txt
# pralinka : 501234567
def _phonebook(name):
try:
plik = open (phonebook, 'r')
except IOError:
print 'Error. File "%s" not found.' % phonebook
sys.exit(1)
else:
for line in plik.readlines():
if name in line:
name = line.split()[-1]
return name
try:
plik.close()
except IOError:
print 'Error. File "%s" not found.' % phonebook
sys.exit(1)
def sendsms(sender, recipient, message):
if recipient.isalpha():
number = _phonebook(recipient)
if number is None:
print 'Error. Recipient "%s" not found.' % recipient
sys.exit(1)
if recipient.isdigit():
number = recipient
if len(sender) > 0 and number.isdigit() and len(number) == 9 and len(message) > 0:
baseURL='http://www.orange.pl'
length = 634 - len(message) - len(sender)
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# orange signin
request = urllib2.Request(baseURL + '/portal/map/map/signin')
request.add_header('User-Agent', 'Opera/8.00 (Windows NT 5.0; U; en)')
try:
result = opener.open(request)
if debug:
print 'Connecting with',baseURL
except IOError:
print 'Connection with %s failed.' % baseURL
# orange login
parmdicta = {'_dyncharset' : 'UTF-8',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.loginErrorURL' : 'http://www.orange.pl/portal/map/map/signin',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.loginErrorURL' : ' ',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.loginSuccessURL' : 'http://www.orange.pl/portal/map/map/your_account',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.loginSuccessURL' : ' ',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.redirectOriginUrl' : 'http://www.orange.pl/portal/map/map/your_account',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.redirectOriginUrl' : ' ',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.requestURL' : ' ',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.requestURL' : ' ',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.value.login' : login,
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.value.login' : ' ',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.value.password' : password,
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.value.password' : ' ',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.login.x' : '0',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.login.y' : '0',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.login' : ' ',
'_DARGS' : '/gear/static/signInLoginBox.jsp'}
request = urllib2.Request(baseURL + '/portal/map/map/signin?noredir=1&_DARGS=/gear/static/signInLoginBox.jsp')
postdata = urllib.unquote(urllib.urlencode(parmdicta))
request.add_data(postdata)
request.add_header('User-Agent', 'Opera/8.00 (Windows NT 5.0; U; en)')
try:
result = opener.open(request)
if debug:
print 'Logged.'
except IOError:
print 'Not logged.'
# orange SMS form
request = urllib2.Request(baseURL + '/portal/map/map/message_box?mbox_view=newsms&mbox_edit=new')
request.add_header('User-Agent', 'Opera/8.00 (Windows NT 5.0; U; en)')
try:
result = opener.open(request).read()
if debug:
print 'Opening SMS form.'
except IOError:
print 'Open SMS form failed.'
else:
import re
rw = re.compile(r'(\d+)',re.S)
for sms in rw.findall(result):
print sms
if debug:
print 'SMS sent.'
except IOError:
print 'SMS not sent.'
# Logout
parmdictc = {'_dyncharset' : 'UTF-8',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutSuccessURL' : '/portal/map/map/your_account',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutSuccessURL' : ' ',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutErrorURL' : '/portal/map/map',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutErrorURL' : ' ',
'enabled' : 'false',
'/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logout' : 'wyloguj+si%C4%99',
'_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logout' : ' ',
'_DARGS' : '/portal/html/user_status.jsp'}
request = urllib2.Request(baseURL + '/portal/map/map?_DARGS=/portal/html/user_status.jsp')
postdata = urllib.unquote(urllib.urlencode(parmdictc))
request.add_data(postdata)
request.add_header('User-Agent', 'Opera/8.00 (Windows NT 5.0; U; en)')
try:
result = opener.open(request)
if debug:
print 'Logout.'
except IOError:
print 'Logout error.'
# Main
if __name__ == '__main__':
import sys
if len(sys.argv) < 4:
print 'Sposób użycia:', sys.argv[0], ' '
print 'Przykład 1:', sys.argv[0], 'inspektor 501234567 bardzo być może ale żaba pozostaje żab±'
print 'Przykład 2:', sys.argv[0], 'sprzedawca pralinka najprawdopodobniej usycha z tęskonty za fiordami'
sys.exit(1)
sender, recipient, message = sys.argv[1], sys.argv[2], ' '.join(sys.argv[3:])
sendsms(sender, recipient, message)