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