Files
api.digisnaxx/events/scrapers/Working/iCal/ical_run.cfpa.py
2025-11-30 15:34:08 -05:00

93 lines
2.7 KiB
Python

import requests, os, sys
from icalendar import Calendar as iCalendar, Event
from datetime import datetime
from dateutil import relativedelta
from pprint import pprint as ppr
import pytz
import django
sys.path.append('../../../../')
os.environ['DJANGO_SETTINGS_MODULE'] = 'config.django.local'
django.setup()
from events.models import Event as DSEvent, Organization, Scraper, Calendar
import events.digitools as digitools
tz = pytz.timezone("US/Central")
td = relativedelta.relativedelta(hours=5)
venue, created = Organization.objects.get_or_create(
name="Center for Performing Arts",
city="Minneapolis",
website="https://www.cfpampls.com/events",
)
try:
scraper, created = Scraper.objects.get_or_create(
name="Center for Performing Arts",
website="https://calendar.google.com/calendar/ical/6rpooudjg01vc8bjek1snu2ro0%40group.calendar.google.com/public/basic.ics",
calendar = Calendar.objects.get(id=1),
items = 0,
new_items = 0,
last_ran = datetime.now(),
)
except Exception as e:
print(e)
scraper = Scraper.objects.get(name=venue.name)
item_count_start = scraper.items
event_type = "Ed"
objIcalData = requests.get(scraper.website)
gcal = iCalendar.from_ical(objIcalData.text)
tz = pytz.timezone("US/Central")
events = digitools.getiCalEvents(gcal, scraper, venue, "Ed")
for event in events:
ppr(event)
e = {}
e['calendars'] = event['calendars']
try:
e['dateStamp'] = event['dateStart'][0]
except:
e['dateStamp'] = event['dateStart']
e['title'] = event['strSummary']
e['scraper'] = scraper
e['link'] = venue.website
try:
digitools.createBasicEvent(e, 'Ed', venue)
except Exception as e:
print("Error: ", e)
# now_now = datetime.today().date()
# try:
# print("1Event: ", event['dateStart'])
# if event['dateStart'] > now_now:
# print("Check Check: ", event['dateStart'])
# ppr(event)
# # createIcalEvent(event, scraper, venue, event_type)
# else:
# print("WHAT?")
# ppr(event)
# except Exception as e:
# try:
# event['dateStart'] = event['dateStart'].date()
# print("2Event: ", event['dateStart'])
# if event['dateStart'] > now_now:
# print("Check Check: ", event['dateStart'])
# ppr(event)
# # createIcalEvent(event, scraper, venue, event_type)
# else:
# print("WHAT?")
# ppr(event)
# except Exception as e:
# print("The Error: ", e)
# pass
digitools.updateScraper(scraper, item_count_start)