catch-up commit + csv with 2024 data
This commit is contained in:
+18
-13
@@ -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...')
|
||||
|
||||
Reference in New Issue
Block a user