Better calendar size calculations
This commit is contained in:
58
building.py
58
building.py
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user