Created
August 8, 2012 16:38
-
-
Save nst/3296490 to your computer and use it in GitHub Desktop.
Automates SMS sending from orange.ch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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