Sort events by date asc
This commit is contained in:
parent
5797dc0dee
commit
b80af75c09
1 changed files with 24 additions and 7 deletions
|
|
@ -10,7 +10,7 @@ import sys
|
|||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from datetime import timedelta, date
|
||||
from datetime import datetime, timedelta, date, time, timezone
|
||||
from os import environ
|
||||
from urllib.parse import quote_plus
|
||||
import caldav
|
||||
|
|
@ -33,7 +33,11 @@ def fill_event(component, calendar) -> dict[str, str]:
|
|||
# month/day/year time? Never ever do that!
|
||||
# It's one of the most confusing date formats ever!
|
||||
# Use year-month-day time instead ... https://xkcd.com/1179/
|
||||
cur["start"] = component.start.strftime("%m/%d/%Y %H:%M")
|
||||
cur["start"] = component.start.strftime("%d/%m/%Y %H:%M")
|
||||
if isinstance(component.start, datetime):
|
||||
cur["dstart"] = component.start
|
||||
else:
|
||||
cur["dstart"] = datetime.combine(component.start, time(0, 0)).replace(tzinfo=timezone.utc)
|
||||
endDate = component.end
|
||||
if endDate:
|
||||
cur["end"] = endDate.strftime("%m/%d/%Y %H:%M")
|
||||
|
|
@ -68,15 +72,28 @@ def main():
|
|||
print("No calendars defined for " + USERNAME)
|
||||
sys.exit(0)
|
||||
|
||||
event_list = []
|
||||
todo_list = []
|
||||
for cal in calendars:
|
||||
events = cal.search(event=True, start=start, end=end, expand=True) \
|
||||
+ cal.search(todo=True)
|
||||
events = cal.search(event=True, start=start, end=end, expand=True)
|
||||
|
||||
for event in events:
|
||||
for component in event.icalendar_instance.walk():
|
||||
if component.name == "VEVENT":
|
||||
display_event(fill_event(component, cal))
|
||||
elif component.name == "VTODO":
|
||||
display_todo(fill_todo(component, cal))
|
||||
event_list.append(fill_event(component, cal))
|
||||
|
||||
todos = cal.search(todo=True)
|
||||
for todo in todos:
|
||||
for component in todo.icalendar_instance.walk():
|
||||
if component.name == "VTODO":
|
||||
todo_list.append(fill_todo(component, cal))
|
||||
|
||||
event_list = sorted(event_list, key=lambda x: x['dstart'])
|
||||
for event in event_list:
|
||||
display_event(event)
|
||||
|
||||
for todo in todo_list:
|
||||
display_todo(todo)
|
||||
|
||||
print(".")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue