"teal": "#16504B",
}
self.keep = gkeepapi.Keep()
- success = self.keep.login(
+ self.token_file = "./google_keep_token.json"
+ if os.path.exists(self.token_file):
+ logger.debug("Attempting to reuse persisted Google Keep login token...")
+ try:
+ with open(self.token_file, "r") as rf:
+ token = "".join(rf.readlines()).strip()
+ self.keep.resume(secrets.google_keep_username, token)
+ logger.debug("Successfully reused existing login token.")
+ except gkeepapi.exception.LoginException:
+ logger.warning("Invalid token, attempting to re-login.")
+
+ if not self.keep.login(
secrets.google_keep_username,
secrets.google_keep_password,
secrets.google_keep_mac,
- )
- if success:
- logger.debug("Connected with gkeep.")
- else:
- logger.debug("Error connecting with gkeep.")
+ ):
+ raise Exception("Error connecting with Google Keep?!")
+ logger.debug("Successfully logged in with Google Keep")
def debug_prefix(self) -> str:
return "gkeep"
def periodic_render(self, key: str) -> bool:
strikethrough = re.compile("(\u2611[^\n]*)\n", re.UNICODE)
- #linkify = re.compile(r".*(https?:\/\/\S+).*")
+ # linkify = re.compile(r".*(https?:\/\/\S+).*")
self.keep.sync()
result_list = self.keep.find(labels=[self.keep.findLabel("kiosk")])
contents = contents.replace(
"\u2610 ", '<LI><INPUT TYPE="checkbox"> '
)
- #contents = linkify.sub(r'<a href="\1">\1</a>', contents)
+ # contents = linkify.sub(r'<a href="\1">\1</a>', contents)
individual_lines = contents.split("\n")
num_lines = len(individual_lines)
logger.debug(f"Unknown color '{color}'")
print(f"TITLE: {color} {note.title}")
with file_writer.file_writer(filename) as f:
- f.write("""
+ f.write(
+ """
<STYLE type="text/css">
a:link { color:#88bfbf; }
ul { list-style-type:none; }
</STYLE>
<DIV STYLE="border-radius:25px; border-style:solid; padding:20px; background-color:%s; color:#eeeeee; font-size:x-large;">
-""" % color
- )
- f.write(f"""
+"""
+ % color
+ )
+ f.write(
+ f"""
<p style="color:#ffffff; font-size:larger"><B>{note.title}</B></p>
<HR style="border-top:3px solid white;">
"""
- )
+ )
if num_lines >= 10:
- logger.debug(
- f"{num_lines} lines: two column mode"
- )
+ logger.debug(f"{num_lines} lines: two column mode")
f.write('<TABLE BORDER=0 WIDTH=100%><TR valign="top">')
f.write(
'<TD WIDTH=50% style="color:#eeeeee; font-size:large">\n'
'<TD WIDTH=50% style="color:#eeeeee; font-size:large">\n'
)
f.write("<FONT><UL STYLE='list-style-type:none'>")
- f.write("</UL></FONT></TD></TR></TABLE></DIV>\n")
+ f.write("</UL></FONT></TD></TR></TABLE></DIV>")
else:
- logger.debug(
- f"{num_lines} lines: one column mode"
- )
+ logger.debug(f"{num_lines} lines: one column mode")
f.write(f"<FONT><UL>{contents}</UL></FONT>")
f.write("</DIV>")
else:
os.remove(_)
except:
pass
- return True
+
+ if self.token_file:
+ token = self.keep.getMasterToken()
+ os.umask(0)
+ descriptor = os.open(
+ path=self.token_file,
+ flags=(os.O_WRONLY | os.O_CREAT | os.O_TRUNC),
+ mode=0o600,
+ )
+ with open(descriptor, "w") as wf:
+ print(token, file=wf)
+ logger.debug("Saved Google Keep token successfully.")
+ return True
# Test
-#logger.setLevel(logging.DEBUG)
-#ch = logging.StreamHandler()
-#ch.setLevel(logging.DEBUG)
-#formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
-#ch.setFormatter(formatter)
-#logger.addHandler(ch)
-#x = gkeep_renderer({"Test", 1234})
-#x.periodic_render("Test")
+# logger.setLevel(logging.DEBUG)
+# ch = logging.StreamHandler()
+# ch.setLevel(logging.DEBUG)
+# formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
+# ch.setFormatter(formatter)
+# logger.addHandler(ch)
+# x = gkeep_renderer({"Test", 1234})
+# x.periodic_render("Test")