From 768b267471fa18eb87eea776542872ae5bff6fc8 Mon Sep 17 00:00:00 2001 From: epage Date: Mon, 1 Jun 2009 23:22:03 +0000 Subject: [PATCH] Hopefully testing and fixes for forwarding numbers for GrandCentral git-svn-id: file:///svnroot/gc-dialer/trunk@353 c39d3808-3fe2-4d86-a59f-b7f623ee9f21 --- src/gc_backend.py | 4 ++- tests/gc_samples/dump_cookies.py | 52 +++++++++++++++++++++++++++++++ tests/gc_samples/generate_gc_samples.py | 2 +- tests/gv_samples/dump_cookies.py | 52 +++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+), 2 deletions(-) create mode 100755 tests/gc_samples/dump_cookies.py create mode 100755 tests/gv_samples/dump_cookies.py diff --git a/src/gc_backend.py b/src/gc_backend.py index ec02e90..a5e550e 100644 --- a/src/gc_backend.py +++ b/src/gc_backend.py @@ -72,6 +72,7 @@ class GCDialer(object): self._accessToken = None self._accountNum = "" self._lastAuthed = 0.0 + self._callbackNumber = "" self._callbackNumbers = {} self.__contacts = None @@ -220,6 +221,7 @@ class GCDialer(object): Set the number that grandcental calls @param callbacknumber should be a proper 10 digit number """ + self._callbackNumber = callbacknumber callbackPostData = urllib.urlencode({ 'a_t': self._accessToken, 'default_number': callbacknumber @@ -240,7 +242,7 @@ class GCDialer(object): for c in self._browser.cookies: if c.name == "pda_forwarding_number": return c.value - return "" + return self._callbackNumber def get_recent(self): """ diff --git a/tests/gc_samples/dump_cookies.py b/tests/gc_samples/dump_cookies.py new file mode 100755 index 0000000..810a03b --- /dev/null +++ b/tests/gc_samples/dump_cookies.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import os +import urllib +import urllib2 +import traceback +import warnings + +import sys +sys.path.append("../../src") + +import browser_emu +import gc_backend + +# Create Browser +browser = browser_emu.MozillaEmulator(1) +cookieFile = os.path.join(".", ".gc_cookies.txt") +browser.cookies.filename = cookieFile + +# Login +username = sys.argv[1] +password = sys.argv[2] + +loginPostData = urllib.urlencode({ + 'Email' : username, + 'Passwd' : password, + 'service': "grandcentral", + "ltmpl": "mobile", + "btmpl": "mobile", + "PersistentCookie": "yes", +}) + +try: + loginSuccessOrFailurePage = browser.download(gc_backend.GCDialer._loginURL, loginPostData) +except urllib2.URLError, e: + warnings.warn(traceback.format_exc()) + raise RuntimeError("%s is not accesible" % gc_backend.GCDialer._loginURL) + +forwardPage = browser.download(gc_backend.GCDialer._forwardselectURL) + +tokenGroup = gc_backend.GCDialer._accessTokenRe.search(forwardPage) +if tokenGroup is None: + print forwardPage + raise RuntimeError("Could not extract authentication token from GrandCentral") +token = tokenGroup.group(1) + + +with open("cookies.txt", "w") as f: + f.writelines( + "%s: %s\n" % (c.name, c.value) + for c in browser.cookies + ) diff --git a/tests/gc_samples/generate_gc_samples.py b/tests/gc_samples/generate_gc_samples.py index 9aacd62..a39f584 100755 --- a/tests/gc_samples/generate_gc_samples.py +++ b/tests/gc_samples/generate_gc_samples.py @@ -25,7 +25,7 @@ webpages = [ # Create Browser browser = browser_emu.MozillaEmulator(1) -cookieFile = os.path.join(".", ".gv_cookies.txt") +cookieFile = os.path.join(".", ".gc_cookies.txt") browser.cookies.filename = cookieFile # Get Pages diff --git a/tests/gv_samples/dump_cookies.py b/tests/gv_samples/dump_cookies.py new file mode 100755 index 0000000..748826b --- /dev/null +++ b/tests/gv_samples/dump_cookies.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import os +import urllib +import urllib2 +import traceback +import warnings + +import sys +sys.path.append("../../src") + +import browser_emu +import gv_backend + +# Create Browser +browser = browser_emu.MozillaEmulator(1) +cookieFile = os.path.join(".", ".gv_cookies.txt") +browser.cookies.filename = cookieFile + +# Login +username = sys.argv[1] +password = sys.argv[2] + +loginPostData = urllib.urlencode({ + 'Email' : username, + 'Passwd' : password, + 'service': "grandcentral", + "ltmpl": "mobile", + "btmpl": "mobile", + "PersistentCookie": "yes", +}) + +try: + loginSuccessOrFailurePage = browser.download(gv_backend.GVDialer._loginURL, loginPostData) +except urllib2.URLError, e: + warnings.warn(traceback.format_exc()) + raise RuntimeError("%s is not accesible" % gv_backend.GVDialer._loginURL) + +forwardPage = browser.download(gv_backend.GVDialer._forwardURL) + +tokenGroup = gv_backend.GVDialer._tokenRe.search(forwardPage) +if tokenGroup is None: + print forwardPage + raise RuntimeError("Could not extract authentication token from GoogleVoice") +token = tokenGroup.group(1) + + +with open("cookies.txt", "w") as f: + f.writelines( + "%s: %s\n" % (c.name, c.value) + for c in browser.cookies + ) -- 1.7.9.5