From acff32bc4e87924e3df83b73aca2092054b292dc Mon Sep 17 00:00:00 2001 From: Maryanne Wachter Date: Sun, 8 Nov 2020 13:11:10 -0800 Subject: [PATCH] commit with initial implementation --- README.md | 3 + assets/tomato_0.png | Bin 0 -> 4237 bytes assets/tomato_1.png | Bin 0 -> 7307 bytes assets/tomato_2.png | Bin 0 -> 10394 bytes assets/tomato_3.png | Bin 0 -> 13529 bytes pomodoro.py | 124 +++++++++++++++++++++++++++++++ shell_scripts/reset_pomodoro.sh | 1 + shell_scripts/update_pomodoro.sh | 1 + 8 files changed, 129 insertions(+) create mode 100644 README.md create mode 100644 assets/tomato_0.png create mode 100644 assets/tomato_1.png create mode 100644 assets/tomato_2.png create mode 100644 assets/tomato_3.png create mode 100644 pomodoro.py create mode 100755 shell_scripts/reset_pomodoro.sh create mode 100755 shell_scripts/update_pomodoro.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..79ad6ee --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# inky-pomodoro + +A tiny eink pomodoro timer for your desk. diff --git a/assets/tomato_0.png b/assets/tomato_0.png new file mode 100644 index 0000000000000000000000000000000000000000..5d143f3868814216c1d333eb33219a92608b1296 GIT binary patch literal 4237 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 literal 0 HcmV?d00001 diff --git a/assets/tomato_2.png b/assets/tomato_2.png new file mode 100644 index 0000000000000000000000000000000000000000..06e108f663afe199ca0557ff0eded39798583522 GIT binary patch literal 10394 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 Ef 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 T*Jc(u00000NkvXXu0mjfGeb%C literal 0 HcmV?d00001 diff --git a/pomodoro.py b/pomodoro.py new file mode 100644 index 0000000..666df7e --- /dev/null +++ b/pomodoro.py @@ -0,0 +1,124 @@ +import os +import numpy +import json +from inky import InkyPHAT +from PIL import Image, ImageDraw, ImageFont +from font_fredoka_one import FredokaOne +from datetime import datetime + +PATH = os.path.dirname(os.path.abspath(__file__)) + +def format_line(font, msg): + lines = [] + w, h = font.getsize(msg) + if w <= inky_display.WIDTH: + lines.append(msg) + else: + toks = msg.split() + cur_line = '' + for tok in toks: + cur_w, _ = font.getsize(cur_line + tok + ' ') + if cur_w <= inky_display.WIDTH: + cur_line = cur_line + tok + ' ' + else: + lines.append(cur_line) + cur_line = tok + ' ' + lines.append(cur_line) + return lines + +def get_pomodoro_time(start_time): + # set pomodoro cycle length + pomodoro = 25 * 60 # typical length in seconds + small_break = 5 * 60 + long_break = 25 * 60 + cycle_length = (pomodoro + small_break) * 3 + pomodoro + long_break + curr_time = int(datetime.utcnow().timestamp()) % 86400 + time_since_start = curr_time - start_time + completed_cycles = int(time_since_start // cycle_length) + pt_in_cycle = time_since_start - completed_cycles * cycle_length + num_tomato = int(pt_in_cycle // (pomodoro + small_break)) + if int(pt_in_cycle % (pomodoro + small_break) >= pomodoro) and (num_tomato < 3): + print(num_tomato, "break time!") + return (num_tomato, "break time!") + elif (pt_in_cycle > (4 * pomodoro + 3 * small_break)): + print(num_tomato, "long break time") + return (num_tomato, "looooong break time!") + else: + print(num_tomato, "still working") + return (num_tomato, "still working") + +def get_tomato_image(inky_display, image_num): + """ + Use PIL library to open tomato image and transpose for inky display + """ + rel_path = os.path.join(PATH, "assets/tomato_" + str(image_num) + ".png") + img = Image.open(rel_path).resize(inky_display.resolution) + canvas = Image.new("P", (inky_display.rows, inky_display.cols)) + canvas.paste(img, (0,0)) # no offset of image + canvas = canvas.transpose(Image.ROTATE_90) + return canvas + +def get_text_image(inky_display, break_text): + font = ImageFont.truetype(FredokaOne, 32) + lines = format_line(font, break_text) + _, line_height = font.getsize(lines[0]) + centered_y = (inky_display.HEIGHT / 2) - ((line_height * len(lines)) / 2) + height_counter = centered_y + img = Image.new("P", (inky_display.rows, inky_display.cols)) + draw = ImageDraw.Draw(img) + for i in range(0, len(lines)): + msg = lines[i] + w, h = font.getsize(msg) + x = (inky_display.WIDTH / 2) - (w / 2) + y = height_counter + draw.text((x, y), msg, inky_display.BLACK, font) + height_counter += h + canvas = img.transpose(Image.ROTATE_90) + return canvas + +def check_display(inky_display, tomato, cycle, start_time): + num_tomato, text = get_pomodoro_time(start_time) + # check if status has changed + if num_tomato == tomato and text == cycle: + return + else: + if text == "still working": + img = get_tomato_image(inky_display, num_tomato) + else: + img = get_text_image(inky_display, text) + # update status + out_dict = {'num_tomato': num_tomato, + 'status_cycle': text, + 'start_time': start_time} + with open(PATH + '/status.json', 'w') as fh: + json.dump(out_dict, fh) + inky_display.set_image(img) + inky_display.show() + +# Global Inky Properties +inky_display = InkyPHAT("red") +inky_display.rotation = 0 # avoid unnecessary swap + +# default start values +tomato = 0 +cycle = "still working" +start_time = int(datetime.utcnow().timestamp()) % 86400 + +if os.path.exists(PATH + '/status.json'): + with open(PATH + '/status.json', 'r') as fh: + status = json.load(fh) + tomato = status["num_tomato"] + cycle = status["status_cycle"] + start_time = status['start_time'] +else: + status = {'num_tomato': tomato, + 'status_cycle': cycle, + 'start_time': start_time} + # reset display + img = get_tomato_image(inky_display, 0) + inky_display.set_image(img) + inky_display.show() + with open(PATH + '/status.json', 'w') as fh: + json.dump(status, fh) + +check_display(inky_display, tomato, cycle, start_time) diff --git a/shell_scripts/reset_pomodoro.sh b/shell_scripts/reset_pomodoro.sh new file mode 100755 index 0000000..717e739 --- /dev/null +++ b/shell_scripts/reset_pomodoro.sh @@ -0,0 +1 @@ +rm ${HOME}/workspaces/tiny-care-python/status.json diff --git a/shell_scripts/update_pomodoro.sh b/shell_scripts/update_pomodoro.sh new file mode 100755 index 0000000..af735f7 --- /dev/null +++ b/shell_scripts/update_pomodoro.sh @@ -0,0 +1 @@ +python3 ${HOME}/workspaces/tiny-care-python/pomodoro.py