+++ /dev/null
-import file_writer
-import renderer
-import re
-import sets
-import gdata_oauth
-import secrets
-
-
-class gdocs_renderer(renderer.debuggable_abstaining_renderer):
- """A renderer to fetches and munge docs from drive.google.com"""
-
- query = 'title="Grocery (go/grocery)" OR title="Costco List (go/costco)"'
-
- def __init__(self, name_to_timeout_dict, oauth):
- super(gdocs_renderer, self).__init__(name_to_timeout_dict, False)
- self.oauth = oauth
- self.client = self.oauth.docs_service()
-
- def debug_prefix(self):
- return "gdocs"
-
- def periodic_render(self, key):
- result = []
- page_token = None
- while True:
- try:
- param = {}
- if page_token:
- param["pageToken"] = page_token
- param["q"] = self.query
- print("QUERY: %s" % param["q"])
-
- files = self.client.files().list(**param).execute()
- result.extend(files["items"])
- page_token = files.get("nextPageToken")
- if not page_token:
- break
- except:
- print("********* TRYING TO REFRESH GDOCS CLIENT *********")
- self.oauth.refresh_token()
- self.client = self.oauth.docs_service()
- return False
-
- def boost_font_size(matchobj):
- x = int(matchobj.group(1))
- x *= 2.33
- x = int(x)
- return "font-size:%dpt" % (x)
-
- for f in result:
- print(f["title"])
- print(f["id"])
- self.debug_print("%s (%s)\n" % (f["title"], f["id"]))
- title = f["title"]
- url = f["exportLinks"]["text/html"]
- print(f)
- print("Fetching %s..." % url)
- resp, contents = self.client._http.request(url)
- print(resp.status)
- print(contents)
- if resp.status == 200:
- print("Got contents.")
- contents = re.sub('<body class="..">', "", contents)
- contents = contents.replace("</body>", "")
- contents = re.sub("font-size:([0-9]+)pt", boost_font_size, contents)
- f = file_writer.file_writer("%s_2_3600.html" % title)
- now = datetime.datetime.now()
- f.write(
- """
-<H1>%s</H1>
-<!-- Last updated at %s -->
-<HR>
-<DIV STYLE="-webkit-column-count: 2; -moz-column-count: 2; column-count: 2;">
-%s
-</DIV>"""
- % (title, now, contents)
- )
- f.close()
- else:
- self.debug_print("error: %s" % resp)
- return False
- return True
-
-
-# oauth = gdata_oauth.OAuth(secrets.google_client_id,
-# secrets.google_client_secret)
-# x = gdocs_renderer({"Testing", 12345},
-# oauth)
-# x.periodic_render("Test")