93 lines
2.7 KiB
Python
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)
|