0953779c19cb2e39e8b6c7135d256ba43539f5de
[gc-dialer] / tests / gv_samples / generate_gv_samples.py
1 #!/usr/bin/env python
2
3 import os
4 import urllib
5 import urllib2
6 import traceback
7 import warnings
8
9 import sys
10 sys.path.append("/usr/lib/dialcentral")
11 sys.path.append("../../src")
12
13 import browser_emu
14 import gv_backend
15
16 webpages = [
17         ("login", gv_backend.GVDialer._loginURL),
18         ("contacts", gv_backend.GVDialer._contactsURL),
19         ("voicemail", gv_backend.GVDialer._voicemailURL),
20         ("sms", gv_backend.GVDialer._smsURL),
21         ("forward", gv_backend.GVDialer._forwardURL),
22         ("recent", gv_backend.GVDialer._recentCallsURL),
23         ("placed", gv_backend.GVDialer._placedCallsURL),
24         ("recieved", gv_backend.GVDialer._receivedCallsURL),
25         ("missed", gv_backend.GVDialer._missedCallsURL),
26 ]
27
28
29 # Create Browser
30 browser = browser_emu.MozillaEmulator(1)
31 cookieFile = os.path.join(".", ".gv_cookies.txt")
32 browser.cookies.filename = cookieFile
33
34 # Get Pages
35 for name, url in webpages:
36         try:
37                 page = browser.download(url)
38         except StandardError, e:
39                 print e.message
40                 continue
41         with open("not_loggedin_%s.txt" % name, "w") as f:
42                 f.write(page)
43
44 # Login
45 username = sys.argv[1]
46 password = sys.argv[2]
47
48 loginPostData = urllib.urlencode({
49         'Email' : username,
50         'Passwd' : password,
51         'service': "grandcentral",
52         "ltmpl": "mobile",
53         "btmpl": "mobile",
54         "PersistentCookie": "yes",
55 })
56
57 try:
58         loginSuccessOrFailurePage = browser.download(gv_backend.GVDialer._loginURL, loginPostData)
59 except urllib2.URLError, e:
60         warnings.warn(traceback.format_exc())
61         raise RuntimeError("%s is not accesible" % gv_backend.GVDialer._loginURL)
62 with open("loggingin.txt", "w") as f:
63         f.write(loginSuccessOrFailurePage)
64
65 forwardPage = browser.download(gv_backend.GVDialer._forwardURL)
66
67 tokenGroup = gv_backend.GVDialer._tokenRe.search(forwardPage)
68 if tokenGroup is None:
69         print forwardPage
70         raise RuntimeError("Could not extract authentication token from GoogleVoice")
71 token = tokenGroup.group(1)
72
73 # Get Pages
74 for name, url in webpages:
75         try:
76                 page = browser.download(url)
77         except StandardError, e:
78                 warnings.warn(traceback.format_exc())
79                 continue
80         print "Writing to file"
81         with open("loggedin_%s.txt" % name, "w") as f:
82                 f.write(page)