API for Calendars

This commit is contained in:
2026-01-12 22:48:08 -05:00
parent f6672a880a
commit aacc0af901
9 changed files with 137 additions and 25 deletions

View File

@@ -1,5 +1,5 @@
import os, sys
from datetime import datetime
from datetime import datetime, timedelta
from dateutil import relativedelta
from time import sleep
import pytz
@@ -19,7 +19,7 @@ odt_next_month = datetime.now() + plus_one_month
# Get Scraper name, item count and online_calendar (virtcal)
def getScraper(venue, webite, cal):
def getScraper(venue, website, cal):
virtcal = Calendar.objects.get(shortcode='000')
try:
scraper, created = Scraper.objects.get_or_create(
@@ -183,7 +183,7 @@ def createBasicEvent(event, event_type, venue):
venue = venue
)
new_event = add_calendars(new_event, event)
print("\n+new event+\n")
# print("\n+new event+")
return new_event, created
# Create iCal Event
@@ -198,7 +198,7 @@ def createBasiciCalEvent(event, event_type, venue):
venue = venue
)
new_event = add_calendars(new_event, event)
print("\n+new event+\n")
print("Success")
return new_event, created
# Create Detailed Event with Details & Guests
@@ -216,7 +216,7 @@ def createDetailedEvent(event, event_type, venue, scraper):
venue = venue
)
new_event = add_calendars(new_event, event)
print("\n+new event+\n")
print("Success")
return new_event, created
# Create iCal event from DF_Online & Medellin
@@ -260,7 +260,7 @@ def getiCalEvents(gcal, scraper, venue, event_type):
return events
# Build iCal Events and Send to Create
def buildiCalEvents(events, event_type, scraper):
def buildiCalEvents(events, event_type, scraper, venue):
for event in events:
e = {}
e['calendars'] = event['calendars']
@@ -322,7 +322,7 @@ def getiCalRepeateEvents(gcal, scraper, venue, event_type, cal):
try:
if rules['FREQ'][0] == 'WEEKLY':
if datetime.today().weekday() != 0:
event = digitools.splitLocation(event, "Medellin")
event = splitLocation(event, city="Medellin")
date = datetime.today().date() - timedelta(days=datetime.today().weekday())
date = datetime.combine(date, event['dateStart'].time())
days = ["SU", "MO", "TU", "WE", "TH", "FR", "SA"]
@@ -333,27 +333,28 @@ def getiCalRepeateEvents(gcal, scraper, venue, event_type, cal):
iCalEventRepeatFilter(day, date, event, scraper, event['venue'], "Ed")
except Exception as e:
print("Error: ", e, "\n\n\n\n")
print("Error: ", event, e, "\n\n\n\n")
pass
def iCalEventRepeatFilterteEvent(day, date, event, scraper, venue, event_type):
def iCalEventRepeatFilter(day, date, event, scraper, venue, event_type):
days = [day-1, day+6, day+13]
for day in days:
event['dateStamp'] = date + timedelta(days=day)
event['dateStart'] = event['dateStamp']
digitools.createCleanIcalEvent(event, scraper, venue, event_type)
createCleanIcalEvent(event, scraper, venue, event_type)
return
def splitLocation(event, **kwargs):
loc_split = event['strLocation'].split(',')
ppr(loc_split)
venue_name = loc_split[0]
venue, created = Organization.objects.get_or_create(
name=venue_name,
)
event['venue'] = venue
if city:
venue.city = kwargs['city']
venue.save()
# if kwargs['city']:
# venue.city = kwargs['city']
# venue.save()
return event
# ARCHIVED Methods