diff --git a/main.py b/main.py index 1e1609b..0ac8c39 100755 --- a/main.py +++ b/main.py @@ -10,8 +10,31 @@ from datetime import datetime import sys import click from dataclass_csv import DataclassWriter +from events import EVENT_LIST, YEAR +""" +build a list of months / weeks / day of the month in those weeks + months 1-12, weeks 0-5 days of week 5 6 are the 1st and 2nd of month + MONTHS[1] [0] [ 0 0 0 0 0 1 2 ] +due to how months work + week 0 can have null days (represented by 0's) + weeks 1 - 4 will have all 7 days present + week 5 may have 7 days or nulls + week 6 can have a monday and/or tuesday in them if the 1st falls on a + saturday or sunday in week 0 + +EVENT_LIST has weeks as 1-6 while MONTHS has weeks as 0-5, offsetting will + be necessary +""" +MONTHS: dict[int, list[list[int]]] +MONTHS = dict(enumerate([calendar.monthcalendar(YEAR, month) for month in + range(1, 13)], start=1)) + +""" convert EVENT_LIST into EVENTS """ +events = [[] for _ in range(7)] +for event in EVENT_LIST: + events[event[0]].append(event[1:]) @dataclass class Event(): @@ -33,12 +56,6 @@ class Event(): show_map: str event_description: str - -YEAR: int = 2024 -MONTHS: dict[int, list[list[int]]] -MONTHS = dict(enumerate([calendar.monthcalendar(YEAR, month) for month in - range(1, 13)], start=1)) - def suffix(day: int) -> str: """convert day to suffix""" result: str = 'th' @@ -81,313 +98,6 @@ def add_event(events: list[Event], description) events.append(event) -def add_tuesdays(events: list[Event], - year: int, - month: int, - weeks: list[list[int]]) -> None: - """add Tuesday events to calendar""" - days = [day[1] for day in weeks if day[1]] - - add_event(events, - "Grief Share 6:00pm", - "Grief Share", - "", - datetime(year, month, days[0], 19, 00, 00), - datetime(year, month, days[0], 21, 00, 00), - ) - - add_event(events, - "Grief Share 6:00pm", - "Grief Share", - "", - datetime(year, month, days[1], 19, 00, 00), - datetime(year, month, days[1], 21, 00, 00), - ) - - add_event(events, - "Grief Share 6:00pm", - "Grief Share", - "", - datetime(year, month, days[2], 19, 00, 00), - datetime(year, month, days[2], 21, 00, 00), - ) - - add_event(events, - "Grief Share 6:00pm", - "Grief Share", - "", - datetime(year, month, days[3], 19, 00, 00), - datetime(year, month, days[3], 21, 00, 00), - ) - - if len(days) == 5: - add_event(events, - "Grief Share 6:00pm", - "Grief Share", - "", - datetime(year, month, days[4], 19, 00, 00), - datetime(year, month, days[4], 21, 00, 00), - ) - - -def add_wednesdays(events: list[Event], - year: int, - month: int, - weeks: list[list[int]]) -> None: - """add Wednesday events to calendar""" - days = [day[2] for day in weeks if day[2]] - - add_event(events, - "Mid Week Service 6:00pm", - "Mid Week Service", - "", - datetime(year, month, days[0], 19, 00, 00), - datetime(year, month, days[0], 21, 00, 00), - ) - - add_event(events, - "Mid Week Service 6:00pm", - "Mid Week Service", - "", - datetime(year, month, days[1], 19, 00, 00), - datetime(year, month, days[1], 21, 00, 00), - ) - - add_event(events, - "Mid Week Service 6:00pm", - "Mid Week Service", - "", - datetime(year, month, days[2], 19, 00, 00), - datetime(year, month, days[2], 21, 00, 00), - ) - - add_event(events, - "Mid Week Service 6:00pm", - "Mid Week Service", - "", - datetime(year, month, days[3], 19, 00, 00), - datetime(year, month, days[3], 21, 00, 00), - ) - - if len(days) == 5: - add_event(events, - "Mid Week Service 6:00pm", - "Mid Week Service", - "", - datetime(year, month, days[4], 19, 00, 00), - datetime(year, month, days[4], 21, 00, 00), - ) - -def add_thursdays(events: list[Event], - year: int, - month: int, - days: list[list[int]]) -> None: - """add Thursday events to calendar""" - days = [day[3] for day in days if day[3]] - - add_event(events, - "Woman’s Meeting 10:00am", - "Woman’s Meeting", - "Woman 2 Woman Bible Study", - datetime(year, month, days[0], 10, 00, 00), - datetime(year, month, days[0], 11, 00, 00), - ) - - add_event(events, - "Woman’s Meeting 10:00am", - "Woman’s Meeting", - "Woman 2 Woman Bible Study", - datetime(year, month, days[1], 10, 00, 00), - datetime(year, month, days[1], 11, 00, 00), - ) - - add_event(events, - "Woman’s Meeting 10:00am", - "Woman’s Meeting", - "Woman 2 Woman Bible Study", - datetime(year, month, days[2], 10, 00, 00), - datetime(year, month, days[2], 11, 00, 00), - ) - - add_event(events, - "Woman’s Meeting 10:00am", - "Woman’s Meeting", - "Woman 2 Woman Bible Study", - datetime(year, month, days[3], 10, 00, 00), - datetime(year, month, days[3], 11, 00, 00), - ) - - if len(days) == 5: - add_event(events, - "Woman’s Meeting 10:00am", - "Woman’s Meeting", - "Woman 2 Woman Bible Study", - datetime(year, month, days[4], 10, 00, 00), - datetime(year, month, days[4], 11, 00, 00), - ) - - -def add_fridays(events: list[Event], - year: int, - month: int, - days: list[list[int]]) -> None: - """add Friday events to calendar""" - days = [day[4] for day in days if day[4]] - - add_event(events, - "For Men Only 6:30pm", - "Men’s Meeting", - "Mens Bible Stude", - datetime(year, month, days[0], 18, 30, 00), - datetime(year, month, days[0], 19, 30, 00), - ) - - add_event(events, - "For Men Only 6:30pm", - "Men’s Meeting", - "Mens Bible Stude", - datetime(year, month, days[1], 18, 30, 00), - datetime(year, month, days[1], 19, 30, 00), - ) - - add_event(events, - "For Men Only 6:30pm", - "Men’s Meeting", - "Mens Bible Stude", - datetime(year, month, days[2], 18, 30, 00), - datetime(year, month, days[2], 19, 30, 00), - ) - - add_event(events, - "For Men Only 6:30pm", - "Men’s Meeting", - "Mens Bible Stude", - datetime(year, month, days[3], 18, 30, 00), - datetime(year, month, days[3], 19, 30, 00), - ) - - if len(days) == 5: - add_event(events, - "Family Movie Night 7:00pm", - "Movie Night", - "Movie to be announced", - datetime(year, month, days[4], 19, 00, 00), - datetime(year, month, days[4], 21, 00, 00), - ) - -def add_saturdays(events: list[Event], - year: int, - month: int, - weeks: list[list[int]]) -> None: - """add Saturday events to calendar""" - days = [day[5] for day in weeks if day[5]] - - add_event(events, - "Men's Breakfast 8:00am", - "Men's Meeting", - "", - datetime(year, month, days[1], 8, 00, 00), - datetime(year, month, days[1], 10, 00, 00), - ) - -def add_sundays(events: list[Event], - year: int, - month: int, - weeks: list[list[int]]) -> None: - """add Sunday events to calendar""" - days = [day[6] for day in weeks if day[6]] - - add_event(events, - "Sunday Evening Service 6:00pm", - "Sunday Eventing Service", - "Starts at 6:00 PM.", - datetime(year, month, days[0], 18, 00, 00), - datetime(year, month, days[0], 19, 00, 00), - ) - - add_event(events, - "Sunday Service 10:00am", - "Sunday Service", - "Prayer Room open from 8:30 AM to 9:30 AM. Worship Service " - "starts at 10:00 AM. First Sunday of the month is " - "Missions Sunday.", - datetime(year, month, days[0], 10, 00, 00), - datetime(year, month, days[0], 12, 00, 00), - ) - - add_event(events, - "Sunday Evening Service 6:00pm", - "Sunday Eventing Service", - "Starts at 6:00 PM.", - datetime(year, month, days[1], 18, 00, 00), - datetime(year, month, days[1], 19, 00, 00), - ) - - add_event(events, - "Sunday Service 10:00am", - "Sunday Service", - "Prayer Room open from 8:30 AM to 9:30 AM. Worship Service " - "starts at 10:00 AM. Second Sunday of the month is " - "Baptism Sunday.", - datetime(year, month, days[1], 10, 00, 00), - datetime(year, month, days[1], 12, 00, 00), - ) - - add_event(events, - "Sunday Evening Service 6:00pm", - "Sunday Eventing Service", - "Starts at 6:00 PM.", - datetime(year, month, days[2], 18, 00, 00), - datetime(year, month, days[2], 19, 00, 00), - ) - - add_event(events, - "Sunday Service 10:00am", - "Sunday Service", - "Prayer Room open from 8:30 AM to 9:30 AM. Worship Service " - "starts at 10:00 AM. Third Sunday of the month is " - "Communion Sunday.", - datetime(year, month, days[2], 10, 00, 00), - datetime(year, month, days[2], 12, 00, 00), - ) - - add_event(events, - "Sunday Evening Service 6:00pm", - "Sunday Eventing Service", - "Starts at 6:00 PM.", - datetime(year, month, days[3], 18, 00, 00), - datetime(year, month, days[3], 19, 00, 00), - ) - - add_event(events, - "Sunday Service 10:00am", - "Sunday Service", - "Prayer Room open from 8:30 AM to 9:30 AM. Worship Service " - "starts at 10:00 AM. Fourth Sunday of the month is " - "Coins for Kids Sunday.", - datetime(year, month, days[3], 10, 00, 00), - datetime(year, month, days[3], 12, 00, 00), - ) - - if len(days) == 5: - add_event(events, - "Sunday Evening Service 6:00pm", - "Sunday Eventing Service", - "Starts at 6:00 PM.", - datetime(year, month, days[4], 18, 00, 00), - datetime(year, month, days[4], 19, 00, 00), - ) - - add_event(events, - "Sunday Service 10:00am", - "Sunday Service", - "Prayer Room open from 8:30 AM to 9:30 AM. Worship Service " - "starts at 10:00 AM. Fifth Sunday of the month is " - "Potluck Sunday", - datetime(year, month, days[4], 10, 00, 00), - datetime(year, month, days[4], 12, 00, 00), - ) - def write_calendar(events: list[Event]) -> None: """write calendar to csv file"""