Skip to content

Instantly share code, notes, and snippets.

@nst
Created August 8, 2012 16:38
Show Gist options
  • Save nst/3296490 to your computer and use it in GitHub Desktop.
Save nst/3296490 to your computer and use it in GitHub Desktop.
Automates SMS sending from orange.ch
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""Automates SMS sending from orange.ch, works on 2012-08-08"""
import requests # pip install requests
import re
import sys
def get_sun_query_params():
url = 'https://my.orange.ch/idmp/UI/Login?realm=my.orange.ch'
r = requests.get(url)
m = re.findall(r'name="SunQueryParamsString" value="(\S*)"', r.text)
sun_query_params = m[0]
return sun_query_params
def get_cookies(username, password, sun_query_params):
url = 'https://my.orange.ch/idmp/UI/Login'
post_d = {'IDToken1':'Basic', 'IDToken2':username, 'IDToken3':password, 'SunQueryParamsString':sun_query_params, 'encoded':'true', 'gx_charset':'UTF-8', 'OCHAction':'Basic', 'arg':'newsession'}
r = requests.post(url, data=post_d)
return r.cookies
def get_token(cookies):
url = "https://my.orange.ch/en/messaging/sms-composer.content"
r = requests.get(url, cookies=cookies)
m = re.findall(r'name="form\[_token\]" value="(\S*)"', r.text)
token = m[0]
return token
def send_message_with_params(prefix, number, message, cookies, token):
url = "https://my.orange.ch/en/messaging/sms-composer.content"
post_d = {'form[to][area]':prefix, 'form[to][number]':number, 'form[message]':message, 'form[_token]':token, 'submit':'1', 'form[sentTillNow]':'', 'form[submitted]':'1'}
r = requests.post(url, data=post_d, cookies=cookies)
return (r.json['status'], r.json['message'])
def send_sms(username, password, prefix, number, message):
sun_query_params = get_sun_query_params()
if not sun_query_params:
return (None, "can't get sun_query_params")
cookies = get_cookies(username, password, sun_query_params)
if not cookies:
return (None, "can't get cookies")
token = get_token(cookies=cookies)
if not token:
return (None, "can't get token")
return send_message_with_params(prefix, number, message, cookies, token)
def main():
USERNAME = 'username'
PASSWORD = 'password'
MESSAGE = 'éà'
PREFIX = '78'
NUMBER = '1234567'
(status, message) = send_sms(USERNAME, PASSWORD, PREFIX, NUMBER, MESSAGE)
print "status:", status
print "message:", message
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment