lots of updates :/

This commit is contained in:
2025-11-30 15:34:08 -05:00
parent 61e198ff55
commit e06a5d49f8
84 changed files with 6614 additions and 2297 deletions

View File

@@ -7,9 +7,6 @@ from lxml import html
from pprint import pprint as ppr
import django
sys.path.append('../')
os.environ['DJANGO_SETTINGS_MODULE'] = 'ds_events.settings'
django.setup()
from xvfbwrapper import Xvfb
from selenium import webdriver as wd
@@ -21,12 +18,20 @@ td = relativedelta.relativedelta(months=1)
odt = datetime.now() + td
def getScraper(venue):
def getReady():
sys.path.append('../../')
os.environ['DJANGO_SETTINGS_MODULE'] = 'config.django.local'
django.setup()
return
def getScraper(venue, cal):
virtcal = Calendar.objects.get(shortcode='000')
try:
scraper, created = Scraper.objects.get_or_create(
name=venue.name,
website=venue.website,
calendar = Calendar.objects.get(id=1),
calendar = Calendar.objects.get(shortcode=cal),
items = 0,
new_items = 0,
last_ran = datetime.now(),
@@ -39,7 +44,7 @@ def getScraper(venue):
scraper.save()
print("Scraper: ", scraper)
pass
return scraper, scraper.items
return scraper, scraper.items, virtcal
def updateScraper(scraper, item_count_start):
num_of_events = DSEvent.objects.filter(scraper=scraper)
@@ -143,6 +148,25 @@ def createDashURL(site_url):
print(links)
return links
def add_calendar(event, calendar):
print("\nNEW EVENT DIGITOOLS: ", event, type(event), calendar)
if type(event) is tuple:
print("STS: ", event)
event = event[0]
cal = Calendar.objects.get(shortcode=calendar)
event.calendar.add(cal)
event.save()
return event
def add_calendars(event, data):
if type(data['calendars']) is not list:
event.calendar.add(data['calendars'])
else:
for cal in data['calendars']:
event.calendar.add(cal)
event.save()
return event
def createBasicEvent(event, event_type, venue):
new_event, created = DSEvent.objects.update_or_create(
event_type = event_type,
@@ -150,26 +174,23 @@ def createBasicEvent(event, event_type, venue):
show_link = event['link'],
show_date = event['dateStamp'],
show_day = event['dateStamp'],
calendar = event['calendar'],
scraper = event['scraper'],
venue = venue
)
new_event = add_calendars(new_event, event)
return new_event, created
def createBasiciCalEvent(event, event_type, venue):
print("starting create")
ppr(event)
new_event, created = DSEvent.objects.update_or_create(
event_type = event_type,
show_title = event['title'][0],
show_link = event['link'],
show_date = datetime.strptime(str(event['dateStamp'][0]), '%Y-%m-%d %H:%M:%S'),
show_day = datetime.strptime(str(event['dateStamp'][0]), '%Y-%m-%d %H:%M:%S'),
calendar = event['calendar'],
scraper = event['scraper'],
venue = venue
)
print("created")
new_event = add_calendars(new_event, event)
return new_event, created
def createDetailedEvent(event, event_type, venue, scraper):
@@ -178,13 +199,13 @@ def createDetailedEvent(event, event_type, venue, scraper):
show_title = event["show_title"],
show_link = event["link"],
show_date = event["dateStamp"],
show_day = event["dateStamp"],
show_day = event['dateStamp'],
guests = " ".join(event["guests"]),
more_details = event["details"],
calendar = event['calendar'],
scraper = event['scraper'],
venue = venue
)
new_event = add_calendars(new_event, event)
return new_event, created
def createBasicArticle(article, event_type, organization):
@@ -206,24 +227,27 @@ def createIcalEvent(event, scraper, venue, event_type):
new_event['date'] = str(new_date)[:-6],
new_event['dateStamp'] = str(new_date)[:-6],
new_event['link'] = venue.website
print("NEW iCal Event")
ppr(new_event)
createBasiciCalEvent(new_event, event_type, venue)
def createCleanIcalEvent(event, scraper, venue, event_type):
new_date = event['dateStart']
new_event = {}
new_event['scraper'] = scraper
new_event['calendar'] = scraper.calendar
new_event['calendars'] = scraper.calendar
new_event['title'] = event['strSummary'],
new_event['date'] = str(new_date),
new_event['dateStamp'] = str(new_date),
new_event['link'] = venue.website
createBasiciCalEvent(new_event, event_type, venue)
def getiCalEvents(gcal, scraper, venue):
def getiCalEvents(gcal, scraper, venue, event_type):
events = []
for component in gcal.walk():
event = {}
event['scraper'] = scraper
event['calendar'] = scraper.calendar
event['calendars'] = [scraper.calendar]
event['strSummary'] = f"{(component.get('SUMMARY'))}"
event['strDesc'] = component.get('DESCRIPTION')
event['strLocation'] = component.get('LOCATION')
@@ -247,17 +271,58 @@ def getiCalEvents(gcal, scraper, venue):
"description" : event['strDesc'],
"Location" : event['strLocation'],
}
now_now = datetime.today().date()
events.append(event)
return events
def returniCalEvents(gcal, scraper, venue, event_type):
events = []
for component in gcal.walk():
event = {}
event['scraper'] = scraper
event['calendars'] = [scraper.calendar]
event['strSummary'] = f"{(component.get('SUMMARY'))}"
event['strDesc'] = component.get('DESCRIPTION')
event['strLocation'] = component.get('LOCATION')
event['dateStart'] = component.get('DTSTART')
event['dateStamp'] = component.get('DTSTAMP')
if event['dateStamp'] is not None:
event['dateStamp'] = event['dateStamp'].dt
if event['dateStart'] is not None:
try:
print("1Event: ", event['dateStart'])
if event['dateStart'] > now_now:
createIcalEvent(event, scraper, venue)
event['dateStart'] = event['dateStart'].dt
except Exception as e:
try:
event['dateStart'] = event['dateStart'].date()
print("1Event: ", event['dateStart'])
if event['dateStart'] > now_now:
createIcalEvent(event, scraper, venue)
except Exception as e:
print("The Error: ", e)
pass
event['dateStart'] = event['dateStart'].dt
event['dateEnd'] = (component.get('DTEND'))
if event['dateEnd'] is not None:
event['dateEnd'] = event['dateEnd'].dt
else:
event['dateEnd'] = event['dateStart']
if event['strSummary'] != 'None':
event['details'] = {
"description" : event['strDesc'],
"Location" : event['strLocation'],
}
events.append(event)
now_now = datetime.today().date()
try:
print("1Event: ", event['dateStart'])
if event['dateStart'] > now_now:
print("Check Check: ", event['dateStart'])
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'])
createIcalEvent(event, scraper, venue, event_type)
else:
print("WHAT?")
ppr(event)
except Exception as e:
print("The Error: ", e)
pass