X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=gkeep_renderer.py;fp=gkeep_renderer.py;h=f7bbf7d9c8a2acec645c339a87966b5e869c7072;hb=c06bfef53f70551e7920bc4facce27f47b89e2ba;hp=cba8596777aeb5689ed15e4b5f9a2e21aabf7d53;hpb=6cc940e0df9b8ea937fb955f959fa878c80f0d7c;p=kiosk.git diff --git a/gkeep_renderer.py b/gkeep_renderer.py index cba8596..f7bbf7d 100644 --- a/gkeep_renderer.py +++ b/gkeep_renderer.py @@ -1,25 +1,19 @@ # -*- coding: utf-8 -*- -import constants -import file_writer import gkeepapi import os import re +from typing import List, Dict + +import constants +import file_writer import renderer import secrets class gkeep_renderer(renderer.debuggable_abstaining_renderer): - def __init__(self, name_to_timeout_dict): + def __init__(self, name_to_timeout_dict: Dict[str, int]) -> None: super(gkeep_renderer, self).__init__(name_to_timeout_dict, True) - self.keep = gkeepapi.Keep() - success = self.keep.login( - secrets.google_keep_username, secrets.google_keep_password - ) - if success: - self.debug_print("Connected with gkeep.") - else: - self.debug_print("Error connecting with gkeep.") self.colors_by_name = { "white": "#002222", "green": "#345920", @@ -34,11 +28,19 @@ class gkeep_renderer(renderer.debuggable_abstaining_renderer): "gray": "#3c3f4c", "teal": "#16504B", } + self.keep = gkeepapi.Keep() + success = self.keep.login( + secrets.google_keep_username, secrets.google_keep_password + ) + if success: + self.debug_print("Connected with gkeep.") + else: + self.debug_print("Error connecting with gkeep.") - def debug_prefix(self): + def debug_prefix(self) -> str: return "gkeep" - def periodic_render(self, key): + def periodic_render(self: str, key) -> bool: strikethrough = re.compile("(\u2611[^\n]*)\n", re.UNICODE) linkify = re.compile(r".*(https?:\/\/\S+).*") @@ -49,14 +51,14 @@ class gkeep_renderer(renderer.debuggable_abstaining_renderer): title = title.replace(" ", "-") title = title.replace("/", "") - filename = "%s_2_3600.html" % title + filename = f"{title}_2_3600.html" contents = note.text + "\n" - self.debug_print("Note title '%s'" % title) + self.debug_print(f"Note title '{title}'") if contents != "" and not contents.isspace(): contents = strikethrough.sub("", contents) - self.debug_print("Note contents:\n%s" % contents) + self.debug_print(f"Note contents:\n{contents}") contents = contents.replace( - u"\u2610 ", u'
  •  ' + "\u2610 ", '
  •  ' ) contents = linkify.sub(r'\1', contents) @@ -84,46 +86,46 @@ class gkeep_renderer(renderer.debuggable_abstaining_renderer): if color in list(self.colors_by_name.keys()): color = self.colors_by_name[color] else: - self.debug_print("Unknown color '%s'" % color) - f = file_writer.file_writer(filename) - f.write( - """ + self.debug_print(f"Unknown color '{color}'") + with file_writer.file_writer(filename) as f: + f.write( + f""" -
    -

    %s

    +
    +

    {note.title}


    """ - % (color, note.title) - ) - if num_lines >= 12 and max_length < 120: - self.debug_print( - "%d lines (max=%d chars): two columns" % (num_lines, max_length) - ) - f.write('') - f.write('\n") - f.write( - '
    \n') - f.write("
      ") - count = 0 - for x in individual_lines: - f.write(x + "\n") - count += 1 - if count == num_lines / 2: - f.write("
    \n' - ) - f.write("
      ") - f.write("
    \n") - else: - self.debug_print( - "%d lines (max=%d chars): one column" % (num_lines, max_length) ) - f.write("
      %s
    " % contents) - f.write("
    ") - f.close() + if num_lines >= 12 and max_length < 120: + self.debug_print( + f"{num_lines} lines (max={max_length} chars): two columns" + ) + f.write('') + f.write( + '\n") + f.write( + '
    \n' + ) + f.write("
      ") + count = 0 + for x in individual_lines: + f.write(x + "\n") + count += 1 + if count == num_lines / 2: + f.write("
    \n' + ) + f.write("
      ") + f.write("
    \n") + else: + self.debug_print( + f"{num_lines} lines (max={max_length} chars): one column" + ) + f.write(f"") + f.write("") else: - self.debug_print("Note is empty, deleting %s." % filename) + self.debug_print(f"Note is empty, deleting {filename}.") _ = os.path.join(constants.pages_dir, filename) try: os.remove(_)