3 from __future__ import with_statement
15 sys.path.append("/usr/lib/dialcentral")
16 sys.path.append("../../src")
24 #("login", gv_backend.GVDialer._loginURL),
25 #("contacts", gv_backend.GVDialer._contactsURL),
26 #("voicemail", gv_backend.GVDialer._voicemailURL),
27 #("sms", gv_backend.GVDialer._smsURL),
28 #("forward", gv_backend.GVDialer._forwardURL),
29 #("recent", gv_backend.GVDialer._recentCallsURL),
30 #("placed", gv_backend.GVDialer._placedCallsURL),
31 #("recieved", gv_backend.GVDialer._receivedCallsURL),
32 #("missed", gv_backend.GVDialer._missedCallsURL),
37 browser = browser_emu.MozillaEmulator(1)
38 cookieFile = os.path.join(".", ".gv_cookies.txt")
39 browser.cookies.filename = cookieFile
42 for name, url in webpages:
44 page = browser.download(url)
45 except StandardError, e:
48 print "Writing to file"
49 with open("not_loggedin_%s.txt" % name, "w") as f:
52 loginPage = browser.download("http://www.google.com/voice/m")
53 with open("login.txt", "w") as f:
54 print "Writing to file"
56 glxRe = re.compile(r"""<input.*?name="GALX".*?value="(.*?)".*?/>""", re.MULTILINE | re.DOTALL)
57 glxTokens = glxRe.search(loginPage)
58 glxToken = glxTokens.group(1)
61 username = sys.argv[1]
62 password = sys.argv[2]
67 'service': "grandcentral",
70 "PersistentCookie": "yes",
73 "continue": gv_backend.GVDialer._forwardURL,
75 pprint.pprint(loginData)
76 loginPostData = urllib.urlencode(loginData)
77 pprint.pprint(loginPostData)
80 loginSuccessOrFailurePage = browser.download(gv_backend.GVDialer._loginURL, loginPostData)
81 except urllib2.URLError, e:
82 warnings.warn(traceback.format_exc())
83 raise RuntimeError("%s is not accesible" % gv_backend.GVDialer._loginURL)
84 with open("loggingin.txt", "w") as f:
85 print "Writing to file"
86 f.write(loginSuccessOrFailurePage)
88 forwardPage = loginSuccessOrFailurePage
90 tokenGroup = gv_backend.GVDialer._tokenRe.search(forwardPage)
91 if tokenGroup is None:
93 raise RuntimeError("Could not extract authentication token from GoogleVoice")
94 token = tokenGroup.group(1)
97 for name, url in webpages:
99 page = browser.download(url)
100 except StandardError, e:
101 warnings.warn(traceback.format_exc())
103 print "Writing to file"
104 with open("loggedin_%s.txt" % name, "w") as f:
108 if __name__ == "__main__":
109 logging.basicConfig(level=logging.DEBUG)