65 lines
1.8 KiB
Python
65 lines
1.8 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="Sociable Ciderwerks",
|
|
city="Minneapolis",
|
|
website="https://sociablecider.com/events",
|
|
)
|
|
event_type = "Mu"
|
|
|
|
try:
|
|
scraper, created = Scraper.objects.get_or_create(
|
|
name="Sociable Ciderwerks",
|
|
website="https://calendar.google.com/calendar/ical/c_oa7uitvkn871o1ojl5e1os4ve8%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
|
|
|
|
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, 'Mu', venue)
|
|
except Exception as e:
|
|
print("Error: ", e)
|
|
|
|
digitools.updateScraper(scraper, item_count_start) |