updated date parsing
Update Calendar / update-calendar (push) Successful in 4s
Details
Update Calendar / update-calendar (push) Successful in 4s
Details
This commit is contained in:
parent
c30f25f4c7
commit
efa691750c
14
README.md
14
README.md
|
|
@ -4,14 +4,12 @@
|
|||
|
||||
## Upcoming Events
|
||||
|
||||
### LATE NITE LUG
|
||||
- **Date:** February 26, 2026 at 08:15 PM EST
|
||||
- **Location:** Online
|
||||
- **Description:** Join us for the second Linux User Group of the Month
|
||||
|
||||
## Recent Past Events
|
||||
|
||||
### EARLY LUG
|
||||
- **Date:** February 12, 2026 at 12:15 PM EST
|
||||
- **Date:** February 12, 2026 at 12:15 PM ET
|
||||
- **Location:** Online
|
||||
- **Description:** Join us for the first Linux User Group of the Month
|
||||
|
||||
### LATE NITE LUG
|
||||
- **Date:** February 26, 2026 at 08:15 PM ET
|
||||
- **Location:** Online
|
||||
- **Description:** Join us for the second Linux User Group of the Month
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ X-WR-CALDESC:Bi-monthly meetings for the Linux Cast User Group
|
|||
|
||||
BEGIN:VEVENT
|
||||
UID:a2b0842c2b5a01104c433fc893c295bb@thelinuxcast.org
|
||||
DTSTAMP:20260212T000016Z
|
||||
DTSTAMP:20260212T004451Z
|
||||
DTSTART:20260212T171500Z
|
||||
DTEND:20260212T181500Z
|
||||
SUMMARY:Linux Cast User Group: EARLY LUG
|
||||
|
|
@ -20,7 +20,7 @@ END:VEVENT
|
|||
|
||||
BEGIN:VEVENT
|
||||
UID:d2f7d7de1a333caed5783ceb4168f501@thelinuxcast.org
|
||||
DTSTAMP:20260212T000016Z
|
||||
DTSTAMP:20260212T004451Z
|
||||
DTSTART:20260227T011500Z
|
||||
DTEND:20260227T021500Z
|
||||
SUMMARY:Linux Cast User Group: LATE NITE LUG
|
||||
|
|
|
|||
|
|
@ -18,13 +18,14 @@ def load_meetings(yaml_file='meetings.yaml'):
|
|||
|
||||
def filter_meetings(meetings, months=3):
|
||||
"""Filter meetings to show only those within the last/next N months"""
|
||||
now = datetime.now()
|
||||
now = datetime.now(ZoneInfo('America/Detroit'))
|
||||
cutoff_past = now - timedelta(days=30 * months)
|
||||
cutoff_future = now + timedelta(days=30 * months)
|
||||
|
||||
filtered = []
|
||||
for meeting in meetings:
|
||||
meeting_date = datetime.strptime(meeting['date'], '%Y-%m-%d')
|
||||
tz = ZoneInfo(meeting.get('timezone', 'America/Detroit'))
|
||||
meeting_date = datetime.strptime(meeting['date'], '%Y-%m-%d').replace(tzinfo=tz)
|
||||
if cutoff_past <= meeting_date <= cutoff_future:
|
||||
filtered.append(meeting)
|
||||
|
||||
|
|
@ -92,14 +93,17 @@ def generate_ics(meetings, output_file='calendar.ics'):
|
|||
|
||||
def generate_readme(meetings, output_file='README.md'):
|
||||
"""Generate README.md from meetings"""
|
||||
now = datetime.now()
|
||||
now = datetime.now(ZoneInfo('America/Detroit'))
|
||||
|
||||
# Separate past and upcoming meetings
|
||||
past_meetings = []
|
||||
upcoming_meetings = []
|
||||
|
||||
for meeting in meetings:
|
||||
meeting_date = datetime.strptime(meeting['date'], '%Y-%m-%d')
|
||||
tz = ZoneInfo(meeting.get('timezone', 'America/Detroit'))
|
||||
meeting_date = datetime.strptime(
|
||||
f"{meeting['date']} {meeting['time']}", '%Y-%m-%d %H:%M'
|
||||
).replace(tzinfo=tz)
|
||||
if meeting_date < now:
|
||||
past_meetings.append(meeting)
|
||||
else:
|
||||
|
|
@ -127,7 +131,7 @@ def generate_readme(meetings, output_file='README.md'):
|
|||
|
||||
lines.extend([
|
||||
f"### {meeting['title']}",
|
||||
f"- **Date:** {formatted_date} EST",
|
||||
f"- **Date:** {formatted_date} ET",
|
||||
f"- **Location:** {meeting.get('location', 'Online')}",
|
||||
f"- **Description:** {meeting['description']}",
|
||||
''
|
||||
|
|
@ -144,7 +148,7 @@ def generate_readme(meetings, output_file='README.md'):
|
|||
|
||||
lines.extend([
|
||||
f"### {meeting['title']}",
|
||||
f"- **Date:** {formatted_date} EST",
|
||||
f"- **Date:** {formatted_date} ET",
|
||||
f"- **Location:** {meeting.get('location', 'Online')}",
|
||||
f"- **Description:** {meeting['description']}",
|
||||
''
|
||||
|
|
|
|||
Loading…
Reference in New Issue