catch-up commit + csv with 2024 data

This commit is contained in:
wes
2024-12-17 09:57:05 -05:00
parent 9b86647b1c
commit b9864b36b4
4 changed files with 657227 additions and 28 deletions
+18 -13
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
from datetime import datetime, date
from datetime import datetime, date, timedelta
import json, requests, psycopg2, logging, sys
from psycopg2 import sql
@@ -93,16 +93,26 @@ def fetch_webpage(url):
def pull_data_and_log(log_park_hours):
json_data = fetch_webpage(ATTRACTIONS_IO_ENDPOINT)
logging.debug('Parsing park hours...')
try:
park_opens = json.loads(json_data['entities']['Resort']['records'][0]['OpeningTimes'])['start']
park_closes = json.loads(json_data['entities']['Resort']['records'][0]['OpeningTimes'])['end']
except KeyError as e:
logging.error('Unable to pull park hours. Is the park open today?')
return
return
logging.debug('Checking that park hours from API are actually occuring today...')
if not datetime.today().date() == datetime.strptime(park_opens, "%Y-%m-%d %H:%M:%S").date():
logging.error('API not returning park hours for today yet. Exiting...')
return
resort_data = [[datetime.now(), json_data['entities']['Resort']['records'][0]['_id'], park_opens, park_closes]]
if log_park_hours:
logging.info('Inserting park hours into LZ_attractions_io_resort...')
log_to_database('LZ_attractions_io_resort', resort_data)
if not (datetime.strptime(park_opens, "%Y-%m-%d %H:%M:%S") - timedelta(minutes=5)) <= datetime.now() <= (datetime.strptime(park_closes, "%Y-%m-%d %H:%M:%S") + timedelta(minutes=5)):
logging.info('Park not open now. Exiting...')
return
attraction_data = []
@@ -140,8 +150,11 @@ def pull_data_and_log(log_park_hours):
row = [datetime.now(), queue['_id'], queue['QueueTime']]
queueline_data.append(row)
logging.debug('Inserting rows into LZ_attractions_io...')
log_to_database('LZ_attractions_io', attraction_data)
log_to_database('LZ_attractions_io_queuetimes', queueline_data)# LZ_attractions_io_queuetimes
logging.debug('Inserting rows into LZ_attractions_io_queuetimes...')
log_to_database('LZ_attractions_io_queuetimes', queueline_data)
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.DEBUG, filename="/home/hoid/git_repos/kuh-no-bowls/knb.log",filemode="a")
@@ -152,20 +165,12 @@ logging.info('Fetching most recent park hours entry from DB...')
park_hours_pull = generic_query(park_hours_query)[0]
logging.debug('%s - %s', park_hours_pull[2], park_hours_pull[3])
try:
closed = park_hours_pull[4]
except:
closed = False
if park_hours_pull[4]:
logging.info('Park closed today. Exiting...')
sys.exit()
if park_hours_pull[2].date() == date.today():
logging.info('Park hours for today already in DB')
park_opens = park_hours_pull[2]
park_closes = park_hours_pull[3]
if park_opens <= datetime.now() <= park_closes:
if (park_opens - timedelta(minutes=5)) <= datetime.now() <= (park_closes + timedelta(minutes=5)):
logging.info('Park is open! Pulling data from API...')
pull_data_and_log(False)
else:
logging.info('Park not currently open. Exiting...')