From: Dustin Walde Date: Thu, 4 May 2023 16:42:22 +0000 (-0700) Subject: Add initial week visualizer X-Git-Url: https://git.walde.dev/?a=commitdiff_plain;h=a76778f99830994063ac2c78eabded2421ce1013;p=punch Add initial week visualizer --- diff --git a/src/image_generator.py b/src/image_generator.py index 6403042..f034c02 100644 --- a/src/image_generator.py +++ b/src/image_generator.py @@ -63,6 +63,21 @@ def day(sheet: TimeSheet, date: datetime.date) -> Image.Image: return img +def week(sheet: TimeSheet, start_date: datetime.date) -> Image.Image: + #img = Image.new('RGBA', (8+IMAGE_SIZE*7, IMAGE_SIZE+2), (0,0,0,0)) + img = Image.new('RGBA', (IMAGE_SIZE*7, IMAGE_SIZE), (0,0,0,0)) + tzi = datetime.datetime.now().astimezone().tzinfo + + for i in range(7): + date = (datetime.datetime.combine(start_date, datetime.time(), tzinfo=tzi) + datetime.timedelta(days=i)).date() + #_day(sheet, img, date, (1+i*(IMAGE_SIZE+1), (i+1)*(IMAGE_SIZE+1)-1), (1, IMAGE_SIZE+1), TARGET_HOURS) + _day(sheet, img, date, (1+i*(IMAGE_SIZE), (i+1)*(IMAGE_SIZE)-1), (1, IMAGE_SIZE-1), TARGET_HOURS) + + #img = img.resize((IMAGE_SIZE*28+32,IMAGE_SIZE*4+8), Image.NEAREST) + img = img.resize((IMAGE_SIZE*28,IMAGE_SIZE*4), Image.NEAREST) + return img + + def _day(sheet: TimeSheet, image: Image.Image, date: datetime.date, x_range: Tuple[int,int], y_range: Tuple[int,int], target_hours: int = 0, alpha: int = 255) -> datetime.timedelta: diff --git a/src/punch.py b/src/punch.py index 750dff5..2f5174e 100644 --- a/src/punch.py +++ b/src/punch.py @@ -2,7 +2,7 @@ # ©2023 Dustin Walde # SPDX-License-Identifier: GPL-3.0-or-later -from datetime import date, datetime, time +from datetime import date, datetime, time, timedelta import sys from typing import List, Optional @@ -113,8 +113,8 @@ def main(args): if len(args) > 2: dt = date.fromisoformat(args[2]) else: - dt = date.today() - image = image_generator.day(sheet, dt) + dt = date.today() - timedelta(days=7) + image = image_generator.week(sheet, dt) image.save("test.png") elif args[1] == 'query':