69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
|
|
import requests, os, sys
|
||
|
|
from icalendar import Calendar as iCalendar, Event
|
||
|
|
|
||
|
|
from datetime import datetime
|
||
|
|
from dateutil import relativedelta
|
||
|
|
td = relativedelta.relativedelta(hours=5)
|
||
|
|
|
||
|
|
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
|
||
|
|
|
||
|
|
from dateutil import relativedelta
|
||
|
|
td = relativedelta.relativedelta(hours=5)
|
||
|
|
|
||
|
|
venue, created = Organization.objects.get_or_create(
|
||
|
|
name="Chicago Ave Fire Arts Center",
|
||
|
|
city="Minneapolis",
|
||
|
|
website="https://www.cafac.org/classes",
|
||
|
|
)
|
||
|
|
event_type = "Ed"
|
||
|
|
|
||
|
|
try:
|
||
|
|
scraper, created = Scraper.objects.get_or_create(
|
||
|
|
name="Chicago Ave Fire Arts Center",
|
||
|
|
website="https://calendar.google.com/calendar/ical/9qj2426rukra3jv933nslsf3r8%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)
|
||
|
|
|
||
|
|
digitools.updateScraper(scraper, item_count_start)
|