Better calendar size calculations

This commit is contained in:
2025-02-16 20:54:03 +00:00
parent 61eed0d0f9
commit 66837ea038

View File

@@ -125,33 +125,45 @@ def draw_image():
return startDate
itemStart = 70
try:
for key, group in groupby(events, get_start_date):
if key == datetime.today().date():
dateStr = "Today"
elif key == (datetime.today() + timedelta(days=1)).date():
dateStr = "Tomorrow"
else:
dateStr = key.strftime("%d %b")
for key, group in groupby(events, get_start_date):
dayStart = itemStart
# Calculate
if key == datetime.today().date():
dateStr = "Today"
elif key == (datetime.today() + timedelta(days=1)).date():
dateStr = "Tomorrow"
else:
dateStr = key.strftime("%d %b")
draw.text((215, itemStart), dateStr, black, fontLargeBold)
w, h = getsize(fontLarge, "Today")
dayStart += h + (ep)
dayTasks = list(group)
for thing in dayTasks:
reflowedItem = reflow_quote(thing["summary"], 170, fontSmall)
w, h = getsize(fontLarge, "Today")
itemStart += h + (ep)
h *= reflowedItem.count("\n") + 1
dayStart += h + (ep)
for thing in list(group):
reflowedItem = reflow_quote(thing["summary"], 170, fontSmall)
w, h = getsize(fontLarge, "Today")
h *= reflowedItem.count("\n") + 1
# print(f'After {reflowedItem}, {itemStart + h}')
if itemStart + h > 270:
raise Space
draw.text((230, itemStart), reflowedItem, black, fontSmall)
itemStart += h + (ep)
dayStart + ep
if itemStart > 250:
raise Space
except Space:
pass
if dayStart > 280:
print()
break
# Commit if possible
draw.text((215, itemStart), dateStr, black, fontLargeBold)
w, h = getsize(fontLargeBold, dateStr)
itemStart += h + ep
for thing in dayTasks:
reflowedItem = reflow_quote(thing["summary"], 170, fontSmall)
w, h = getsize(fontSmall, thing["summary"])
h *= reflowedItem.count("\n") + 1
draw.text((230, itemStart), reflowedItem, black, fontSmall)
itemStart += h + ep
itemStart += ep
return image