01234567890123456789012345678901234567890123456789012345678901234567890123456789
18191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865 |
<----SKIPPED LINES---->
Returns:
Two tuple:
- Text representation of the json message from FlightAware.
- Text string of error message, if any
"""
min_query_delay_seconds = 90
global last_query_time
url = 'https://flightaware.com/live/flight/' + flight_number
seconds_since_last_query = time.time() - last_query_time
if seconds_since_last_query < min_query_delay_seconds:
error_msg = (
'Unable to query FA for URL since last query to FA was only %d seconds '
'ago; min of %d seconds needed: %s' % (
seconds_since_last_query, min_query_delay_seconds, url))
Log(error_msg)
return '', error_msg
last_query_time = time.time()
Log(
'last_query_time: %d; time.time(): %d;'
'seconds_since_last_query: %d; min_query_delay_seconds: %d' % (
last_query_time, time.time(),
seconds_since_last_query, min_query_delay_seconds))
try:
response = requests.get(url)
except requests.exceptions.RequestException as e:
error_msg = 'Unable to query FA for URL due to %s: %s' % (e, url)
Log(error_msg)
return '', error_msg
soup = bs4.BeautifulSoup(response.text, 'html.parser')
l = soup.find_all('script')
flight_script = None
for script in l:
if "trackpollBootstrap" in str(script):
flight_script = str(script)
break
if not flight_script:
error_msg = (
'Unable to find trackpollBootstrap script in page: ' + response.text)
Log(error_msg)
return '', error_msg
first_open_curly_brace = flight_script.find('{')
last_close_curly_brace = flight_script.rfind('}')
flight_json = flight_script[first_open_curly_brace:last_close_curly_brace+1]
return flight_json, ''
<----SKIPPED LINES---->
|
01234567890123456789012345678901234567890123456789012345678901234567890123456789
18191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865 |
<----SKIPPED LINES---->
Returns:
Two tuple:
- Text representation of the json message from FlightAware.
- Text string of error message, if any
"""
min_query_delay_seconds = 90
global last_query_time
url = 'https://flightaware.com/live/flight/' + flight_number
seconds_since_last_query = time.time() - last_query_time
if seconds_since_last_query < min_query_delay_seconds:
error_msg = (
'Unable to query FA for URL since last query to FA was only %d seconds '
'ago; min of %d seconds needed: %s' % (
seconds_since_last_query, min_query_delay_seconds, url))
Log(error_msg)
return '', error_msg
last_query_time = time.time()
#Log(
# 'last_query_time: %d; time.time(): %d;'
# 'seconds_since_last_query: %d; min_query_delay_seconds: %d' % (
# last_query_time, time.time(),
# seconds_since_last_query, min_query_delay_seconds))
try:
response = requests.get(url, timeout=5)
except requests.exceptions.RequestException as e:
error_msg = 'Unable to query FA for URL due to %s: %s' % (e, url)
Log(error_msg)
return '', error_msg
soup = bs4.BeautifulSoup(response.text, 'html.parser')
l = soup.find_all('script')
flight_script = None
for script in l:
if "trackpollBootstrap" in str(script):
flight_script = str(script)
break
if not flight_script:
error_msg = (
'Unable to find trackpollBootstrap script in page: ' + response.text)
Log(error_msg)
return '', error_msg
first_open_curly_brace = flight_script.find('{')
last_close_curly_brace = flight_script.rfind('}')
flight_json = flight_script[first_open_curly_brace:last_close_curly_brace+1]
return flight_json, ''
<----SKIPPED LINES---->
|