9 class gdocs_renderer(renderer.debuggable_abstaining_renderer):
10 """A renderer to fetches and munge docs from drive.google.com"""
12 query = 'title="Grocery (go/grocery)" OR title="Costco List (go/costco)"'
14 def __init__(self, name_to_timeout_dict, oauth):
15 super(gdocs_renderer, self).__init__(name_to_timeout_dict, False)
17 self.client = self.oauth.docs_service()
19 def debug_prefix(self):
22 def periodic_render(self, key):
29 param["pageToken"] = page_token
30 param["q"] = self.query
31 print("QUERY: %s" % param["q"])
33 files = self.client.files().list(**param).execute()
34 result.extend(files["items"])
35 page_token = files.get("nextPageToken")
39 print("********* TRYING TO REFRESH GDOCS CLIENT *********")
40 self.oauth.refresh_token()
41 self.client = self.oauth.docs_service()
44 def boost_font_size(matchobj):
45 x = int(matchobj.group(1))
48 return "font-size:%dpt" % (x)
53 self.debug_print("%s (%s)\n" % (f["title"], f["id"]))
55 url = f["exportLinks"]["text/html"]
57 print("Fetching %s..." % url)
58 resp, contents = self.client._http.request(url)
61 if resp.status == 200:
62 print("Got contents.")
63 contents = re.sub('<body class="..">', "", contents)
64 contents = contents.replace("</body>", "")
65 contents = re.sub("font-size:([0-9]+)pt", boost_font_size, contents)
66 f = file_writer.file_writer("%s_2_3600.html" % title)
67 now = datetime.datetime.now()
71 <!-- Last updated at %s -->
73 <DIV STYLE="-webkit-column-count: 2; -moz-column-count: 2; column-count: 2;">
76 % (title, now, contents)
80 self.debug_print("error: %s" % resp)
85 # oauth = gdata_oauth.OAuth(secrets.google_client_id,
86 # secrets.google_client_secret)
87 # x = gdocs_renderer({"Testing", 12345},
89 # x.periodic_render("Test")