85 lines
2.6 KiB
Python
85 lines
2.6 KiB
Python
|
|
import os, sys
|
||
|
|
from datetime import datetime
|
||
|
|
from dateutil import relativedelta
|
||
|
|
|
||
|
|
import django
|
||
|
|
sys.path.append('../')
|
||
|
|
os.environ['DJANGO_SETTINGS_MODULE'] = 'ds_events.settings'
|
||
|
|
django.setup()
|
||
|
|
|
||
|
|
from time import sleep
|
||
|
|
from pprint import pprint as ppr
|
||
|
|
from selenium import webdriver as wd
|
||
|
|
from selenium.webdriver.common.by import By
|
||
|
|
|
||
|
|
from xvfbwrapper import Xvfb
|
||
|
|
from lxml import html
|
||
|
|
import pytz
|
||
|
|
|
||
|
|
from events.models import Event as DSEvent, Organization
|
||
|
|
from digitools import getBrowser, createURL, createBasicEvent, getSource
|
||
|
|
|
||
|
|
|
||
|
|
exit()
|
||
|
|
|
||
|
|
current_year = str(datetime.now().year)
|
||
|
|
venue, created = Organization.objects.get_or_create(
|
||
|
|
name="Piller Forum",
|
||
|
|
city="Minneapolis",
|
||
|
|
website="https://www.pilllar.com/pages/events",
|
||
|
|
)
|
||
|
|
|
||
|
|
tz = pytz.timezone("US/Central")
|
||
|
|
|
||
|
|
DATETIME_FORMAT = '%B %d %I:%M%p %Y'
|
||
|
|
DATETIME_FORMAT = '%B %A %d %I:%M-%I:%M%p'
|
||
|
|
|
||
|
|
if len(sys.argv) >= 2:
|
||
|
|
arg1 = sys.argv[1]
|
||
|
|
br = getBrowser(arg1)
|
||
|
|
br.get(venue.website)
|
||
|
|
else:
|
||
|
|
print("No run_env")
|
||
|
|
quit()
|
||
|
|
|
||
|
|
try:
|
||
|
|
br.find_element(By.XPATH, '//*[@class="privy-dismiss-content"]').click()
|
||
|
|
except Exception as e:
|
||
|
|
print(e)
|
||
|
|
pass
|
||
|
|
|
||
|
|
months = br.find_elements(By.XPATH, '//*[@class="sse-display"]')
|
||
|
|
|
||
|
|
for month in months:
|
||
|
|
month_name = month.find_element(By.XPATH, './/*[@class="sse-size-28"]/u').text.capitalize()
|
||
|
|
events = month.find_elements(By.XPATH, './/p')
|
||
|
|
for event in events:
|
||
|
|
e = {}
|
||
|
|
eventTitle = event.text
|
||
|
|
try:
|
||
|
|
e['title'] = " ".join(eventTitle.split("-")[1].split(" ")[1:-2])
|
||
|
|
if 'Music' in eventTitle:
|
||
|
|
e['event_type'] = "Mu"
|
||
|
|
elif 'The Growth Arc' in eventTitle:
|
||
|
|
e['event_type'] = "Ot"
|
||
|
|
e['dateTime'] = " ".join([month_name, date, "7:00pm", current_year])
|
||
|
|
e['dateStamp'] = datetime.strptime(e['dateTime'], DATETIME_FORMAT)
|
||
|
|
e['title'] = "The Growth Arc - Relationship Support Space"
|
||
|
|
e['link'] = venue.website
|
||
|
|
elif 'Event' in eventTitle:
|
||
|
|
e['event_type'] = "Mu"
|
||
|
|
else:
|
||
|
|
e['event_type'] = "Ot"
|
||
|
|
date = eventTitle.split(":")[0].split(" ")[1].replace("th", "").replace("nd", "").replace("rd", "").replace("st", "")
|
||
|
|
time = eventTitle.split("-")[1].split(" ")[-2:][0]
|
||
|
|
e['dateTime'] = " ".join([month_name, date, time, current_year])
|
||
|
|
e['dateStamp'] = datetime.strptime(e['dateTime'], DATETIME_FORMAT)
|
||
|
|
e['link'] = venue.website
|
||
|
|
createBasicEvent(e, venue)
|
||
|
|
except Exception as e:
|
||
|
|
print("error ", eventTitle)
|
||
|
|
print(e)
|
||
|
|
|
||
|
|
sleep(3)
|
||
|
|
# ppr(events)
|
||
|
|
br.close()
|